php
  • mysql
  • concatenation
  • 2014-02-23 97 views 0 likes 
    0

    任何人都可以幫助我把它們放在一起嗎?我是一個小白菜。我正在使用while循環將一些信息放入列中。只是爲了填充現有的用戶。我認爲我擁有一切正確的東西,除了當我試圖在mysql語句中將字符串粘在一起時腦死亡!連鎖殺死我

    mysql_query("UPDATE `tuser` SET `AthleteID`=' " . strtoupper(substr($row["LName"], 0, 2)) . $row["SkillshowUserID"] . " 'WHERE `SkillshowUserID` = `SkillshowUserID`;'"); 
    
    +1

    確保您使用'mysql_real_escape_string'來防止您的webapp出現SQL注入漏洞。 –

    +0

    謝謝!我不認爲這會是一個問題,這是一次性使用一段代碼。 – lidja007

    回答

    1

    將您的PHP邏輯帶出您的查詢。你只是讓你的生活更加困難:

    $athleteId = strtoupper(substr($row["LName"], 0, 2)) . $row["SkillshowUserID"]; 
    mysql_query("UPDATE `tuser` SET `AthleteID`='$athleteId' WHERE `SkillshowUserID` = `SkillshowUserID`;"); 
    

    一個清潔的查詢做很容易地看到你在那裏有一個額外的報價,需要您的AthleteID價值和你WHERE條款之間存在一些間隔。

    +0

    +1。我實際上會更進一步,並添加另一個變量,「$ sql =」UPDATE ...,並將SQL文本連接成一個字符串,然後通過調用「mysql_query($ sql)',並添加在調用mysql_query的時候檢查從調用返回到mysql_query的檢查,我不太關心提交的實際SQL文本,更關心處理返回的問題。只是看起來很混亂 – spencer7593

    +0

    也許我的代碼有比我想象的更多的問題:(我已經完成了這些建議,並沒有去,我並不太擔心注入,這個特定的文件是一次性使用的 – lidja007

    +0

    < ?PHP的 require_once( '資源/ connection.php'); 回波 '你好小白' '
    '; $ query = mysql_query('SELECT LName,SkillshowUserID FROM tuser WHERE SkillshowUserID = SkillshowUserID'); $ athleteId = strtoupper(substr($ row [「LName」],0,2))。 $行[ 「SkillshowUserID」]; $ update =「UPDATE'tuser' SET'AthleteID' ='$ athleteId'WHERE'SkillshowUserID' ='SkillshowUserID';」; while($ row = mysql_fetch_array($ query)){ mysql_query($ update); } – lidja007

    相關問題