MySQL UPDATE函数拒绝更新数据库

时间:2014-01-10 21:19:57

标签: php 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!";
}

感谢您的帮助!

3 个答案:

答案 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查询中以从中获取调试信息。