PHP中的MySQL查询 - 不正确?

时间:2011-11-21 18:43:31

标签: php mysql

此查询有什么问题?这似乎对我来说是正确的:

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')");

8 个答案:

答案 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。“'”;