此查询有什么问题?这似乎对我来说是正确的:
mysql_query("UPDATE culture SET cult_desc=$culture WHERE cult_id is $UID");
修改它,NetBeans仍然给我一个错误。这是我的页面总代码:
$culture = $_POST["culture"];
if (isset($_POST["id"]))
$UID = $_POST["id"];
mysql_query("UPDATE culture SET cult_desc='$culture' WHERE cult_id=$UID");
else
mysql_query("INSERT INTO culture
VALUES(cult_desc='$culture')");
答案 0 :(得分:2)
$ culture的价值是什么? 如果它是一个字符串,你需要用引号封装它。
$ UID也是如此。
此外,where-condition中的'is'应为'='
另外:用这段代码观看我们。确保$ culture和$ UID不能包含任何恶意值(例如来自用户的恶意输入)
答案 1 :(得分:2)
cult_desc可能是字符串所以需要用'包裹'
mysql_query("UPDATE culture SET cult_desc='$culture' WHERE cult_id = $UID");
答案 2 :(得分:1)
如果SET cult_desc是一个字符串,那么
mysql_query("UPDATE culture SET cult_desc='$culture' WHERE cult_id = $UID");
或
mysql_query("UPDATE culture SET cult_desc=$culture WHERE cult_id = $UID")
答案 3 :(得分:1)
看到新编辑的代码,你的update语句现在是正确的,但你的insert语句现在是错误的。
尝试:
mysql_query("INSERT INTO culture (culture_desc)
VALUES ('$culture')");
答案 4 :(得分:1)
你在if语句的{和}中的问题
$culture = $_POST["culture"];
if (isset($_POST["id"])){
$UID = $_POST["id"];
mysql_query("UPDATE culture SET cult_desc='$culture' WHERE cult_id=$UID");
}else{
mysql_query("INSERT INTO culture
VALUES(cult_desc='$culture')");
}
答案 5 :(得分:0)
$sql = "UPDATE 'culture' SET `cult_desc` = '$culture' WHERE `cult_id` = '$UID'";
基本上,你使用的是而不是=
答案 6 :(得分:0)
根据$ culture和$ UID的数据类型,您可能会丢失引号。 Cult_desc听起来像一个字符串,因此$ culture应该用引号括起来。
答案 7 :(得分:0)
你应该经常检查mysql_error.http://php.net/manual/en/function.mysql-error的输出。
我通常也使用=而不是'is',并将所有输入数据包装在引号中。例如
$ sql =“UPDATE'culture'Set cult_desc
='”。$ culture。“'WHERE cult_id
='”。$ UID。“'”;