我一直在努力使这段代码工作几个小时,但我似乎无法找到解决方案。我已经删除了所有相关主题,并尝试更改代码,标点符号等,但它们都没有为我工作。
结果总是“成功!”但数据库更新永远不会工作(在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 :(得分: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错误。
答案 1 :(得分:0)
姓名,电话,国家等等接缝像VARCHARs。所以,它应该被视为一个字符串。
所以,查询应该是。
"UPDATE users SET Name='".$nev."', Phone='".$telefonszam."',Country='".$orszag."', State='".$megye."',City='".$varos."', ZIP='".$iranyitoszam."',Road='".$utca."' WHERE EmailAddress='" . $_SESSION['EmailAddress'] . "'"
答案 2 :(得分:0)
正如其他答案所指出的那样,你的字符串变量周围缺少引号。
如果您的MySQL查询无法执行,请在调试时尝试回显查询,以查看您发送到数据库的确切内容。
$myValue = "Green";
$mySQL = "UPDATE MyTable SET MyColor = " . $myValue;
$myQuery = mysql_query($mySQL);
echo $mySQL;
当整个SQL字符串组合成一个整体时,可视化地查看错误会更容易。
您还可以复制已组装的SQL字符串并将其直接粘贴到phpmyadmin查询中以从中获取调试信息。