2012-07-13 31 views
-1

我有一個兩個階段配準,一個有重要數據,如電子郵件的用戶名和密碼,以及可選的第二一個與個人信息,如生物,眼睛的顏色等。我對這些高管2檔,第一個ofc將數據寫入數據庫的第一部分,留下30列個人數據爲空。第二個做另一行,但現在是空的重要數據。我想追加,或加入這兩行,那麼所有的信息是在一排..追加2個MySQL行

這裏是第二屆一個

$qry = "UPDATE `performers` SET `Bemutatkozas` = '$bemuatkozas', `Feldob` = '$feldob', `Lehangol` = '$lehangol', `Szorzet` = '$szorzet', `Jatekszerek` = '$jatek', `Kukkolas` = '$kukkolas', `Flort` ='$flort', `Szeretek` = '$szeretek', `Utalok` = '$utalok', `Fantaziak` = '$fantaziak', `Titkosvagyak` = '$titkos_vagyak, `Suly` = '$suly', `Magassag` = '$magassag', `Szemszin` = '$szemszin', `Hajszin` = '$hajszin', `Hajhossz` = '$hajhossz', `Mellboseg` ='$mellboseg', `Orarend` = '$orarend', `Beallitottsag` = '$szexualis_beallitottsag', `Pozicio` = '$pozicio', `Dohanyzas` = '$cigi', `Testekszer` = '$pc', `Tetovalas` ='$tetko', `Szilikon` ='$szilikon', `Fetish1` = '$pisiszex', `Fetish2` = '$kakiszex', `Fetish3` = '$domina', `Testekszerhely` = '$pchely', `Tetovalashely` = '$tetkohely', `Csillagjegy` = '$csillagjegy', `Parral` = '$par', `Virag` = '$virag' WHERE `Username` ='" . $_POST['username']. "'"; 
$result = @mysql_query($qry); 


//Check whether the query was successful or not 
if($result) { 
    header("location: perf_register_success.php"); 
    exit(); 

我不知道,如果$ _ POST在這裏工作。我有表單,然後是表單的執行體,這是可行的,然後是這個表單,這是這個表單的執行者。無論如何,我總是會得到「查詢失敗」的消息,這是在'if'的else語句中正在使用。我究竟做錯了什麼? 謝謝!

+3

有作爲'WHERE'與插件http://dev.mysql.com/doc/refman/5.5/en/insert.html – 2012-07-13 00:29:19

+0

那麼我應該怎麼做這樣的事? – trisztann 2012-07-13 00:40:19

+1

我們應該保留一個易受攻擊的sql注入問題的評分板。 – Mahn 2012-07-13 00:58:20

回答

1

用於更新的正確語法如下:

UPDATE table SET columnA=valueA, columnB=valueB WHERE condition=value 

documentation here

因此,您的查詢應該如下所示:

$qry = "UPDATE performers SET Bemutatkozas = $bemuatkozas, Feldob = $feldob, Lehangol = $lehangol [...] WHERE Username ='" . $_POST['username']. "' 

你必須更換(所有這些都需要一些時間),但希望你能得到這個模式。

除此之外,你應該改進/改變你的代碼中的一些東西,但我只是在這個問題上指出你jeroen answer,因爲他幾乎涵蓋了這一切。

+0

謝謝你,先生,像一個魅力工作。我肯定會隨着時間的推移提高安全性,我只是想通過基礎知識,然後覆蓋:) – trisztann 2012-07-13 01:12:46

1

你想UPDATE而不是INSERT你的第二個查詢。

除此之外,你真的需要修復SQL注入錯誤,最好通過與預處理語句組合切換到PDO或mysqli的。 mysql_*函數已棄用。

你採取任何解決方案,你需要添加適當的錯誤處理,壓制錯誤是錯誤的,尤其是當你試圖解決問題,但即使在生產現場,需要先登錄,不能忽略的錯誤。

+0

我試過,但仍然得到「查詢失敗」 – trisztann 2012-07-13 00:44:23

+0

@trisztann也許你可以更新你的問題與你試過? – jeroen 2012-07-13 00:45:20

+0

完成,是,先生。 – trisztann 2012-07-13 00:54:11