2014-01-10 43 views
0

我一直在努力使這個代碼工作幾個小時,但我似乎無法找到解決方案。我已經闡述了所有相關的主題,並試圖更改代碼,標點符號等,但他們都沒有爲我工作。MySQL更新函數拒絕更新數據庫

結果總是「成功!」但數據庫更新從不起作用(在phpmyadmin中檢查)。 我希望你能找到錯誤。代碼如下:

if(empty($_POST['nev']) || empty($_POST['orszag']) || empty($_POST['telefonszam']) || empty($_POST['iranyitoszam']) 
    || empty($_POST['megye']) || empty($_POST['varos']) || empty($_POST['utca'])) { 
    echo "Failure! Missing data..."; 
} 
else { 
    $nev = mysql_real_escape_string($_POST['nev']); 
    $orszag = mysql_real_escape_string($_POST['orszag']); 
    $telefonszamm = mysql_real_escape_string($_POST['telefonszam']); 
    $iranyitoszam = mysql_real_escape_string($_POST['iranyitoszam']); 
    $megye = mysql_real_escape_string($_POST['megye']); 
    $varos = mysql_real_escape_string($_POST['varos']); 
    $utca = mysql_real_escape_string($_POST['utca']); 

    $shipping_query = mysql_query("UPDATE users 
     SET Name=".$nev.", Phone=".$telefonszam.", 
     Country=".$orszag.", State=".$megye.", 
     City=".$varos.", ZIP=".$iranyitoszam.", 
     Road=".$utca." 
     WHERE EmailAddress='" . $_SESSION['EmailAddress'] . "'"); 

    echo "Success!"; 
} 

謝謝你的幫忙!

+0

請不要使用mysql_ *;它已被棄用。改用MySQLi或PDO。 –

回答

3

您錯過了查詢中字符串周圍的引號。

$shipping_query = mysql_query("UPDATE users 
SET Name='".$nev."', Phone='".$telefonszam."', 
Country='".$orszag."', State='".$megye."', 
City='".$varos."', ZIP='".$iranyitoszam."', 
Road='".$utca."' 
WHERE EmailAddress='" . $_SESSION['EmailAddress'] . "'"); 

您也沒有錯誤檢查您的查詢。所以無論成功還是失敗,總會說「成功」。您需要檢查在聲明成功之前是否有更新的MySQL錯誤行。

+0

謝謝!我認爲我犯了一個非常簡單卻又巨大的錯誤。它解決了問題! – user3183344

0

姓名,電話,國家等等接縫像VARCHARs。所以,它應該被視爲一個字符串。

所以,查詢應該是這樣的。

"UPDATE users SET Name='".$nev."', Phone='".$telefonszam."',Country='".$orszag."', State='".$megye."',City='".$varos."', ZIP='".$iranyitoszam."',Road='".$utca."' WHERE EmailAddress='" . $_SESSION['EmailAddress'] . "'" 
0

正如其他答案已經指出,你缺少你的字符串變量引號。

如果您的MySQL查詢無法執行,請嘗試在調試時回顯您的查詢以查看您要發送到數據庫的內容。

$myValue = "Green"; 
$mySQL = "UPDATE MyTable SET MyColor = " . $myValue; 
$myQuery = mysql_query($mySQL); 
echo $mySQL; 

將整個SQL字符串彙總爲一個整體時,在視覺上發現錯誤要容易得多。

您也可以複製組裝好的SQL字符串並將其直接粘貼到phpmyadmin查詢中以從中獲取調試信息。