Sep*_*oth 2 php mysql sql get sql-update
任何人都可以告诉我为什么这个更新查询不起作用?
if ($_GET['update']) {
include 'config.php';
//Connect to MYSQL Database server
$connect = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Could not connect to MYSQL Database.");
$result = mysql_select_db(DB_NAME, $connect) or die("Could not connect to MYSQL table.");
mysql_query("UPDATE contact SET read = 1 WHERE id = '$_GET[update]'")or die("Query failed.");
echo "Update works!";
} else {
echo "Update does not work...ughh.";
}
先感谢您.
编辑:我得到了查询工作.对于担心安全问题的人,我使用此脚本作为测试,看看我是否想要使用它.我刚刚添加了安全性,因为脚本可以工作.谢谢大家的帮助和提示.
试试这个查询行:
mysql_query("UPDATE contact SET read = 1 WHERE id = '".$_GET[update]."'")or die("Query failed: " . mysql_error());
注意die()语句的更改以便更好地处理错误:
die("Query failed: " . mysql_error());
*另外,只是一个FYI,你应该真的逃避用户变量(例如GET变量),以防止SQL注入:
mysql_query("UPDATE contact SET read = 1 WHERE id = '".mysql_real_escape_string($_GET[update])."'")or die("Query failed: " . mysql_error());
请报告结果.
列读什么?
mysql_query("UPDATE contact SET read = 1 WHERE id = '$_GET[update]'")
从读取的非大写来判断,我怀疑你在MySQL中使用了一个保留字来表示该列.
看到:
要解决这个问题,只需在阅读时单引号即可.IE
mysql_query("UPDATE contact SET 'read' = 1 WHERE id = '$_GET[update]'")
或者每个j.bruni更好:
mysql_query("UPDATE contact SET `read` = 1 WHERE id = '$_GET[update]'")