2014-01-10 4 views
0

Я пытался заставить этот код работать часами, но я не могу найти решение. Я запустил все соответствующие темы и попытался изменить код, пунктуацию и т. Д., Но никто из них не работал для меня.Функция MySQL UPDATE отказывается обновлять базу данных

Результат: «Успех!» но обновление базы данных никогда не работает (проверено в 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

Название, телефон, страна и т. Д. Шов, такой как VARCHAR. поэтому его следует рассматривать как строку.

Итак, запрос должен быть похож.

"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, чтобы получить отладочную информацию.

Смежные вопросы