这个mysql语句出了什么问题 - INSERT INTO ... WHERE ...还是?

时间:2012-06-05 07:18:59

标签: php mysql wordpress

这是我的mysql声明,但由于某种原因,它实际上并没有工作,我无法弄清楚原因。提前谢谢!

$ID = $_GET['post'];
$length = $_POST['excerpt_length'];

more code here to connect and select db...

mysql_query("
INSERT INTO wp_posts (excerpt)
VALUES(" . $length . ")
WHERE ID = " . $ID . "
OR post_name LIKE '" . $ID . "%'");

这是针对wordpress的,我正在选择添加摘录长度,因为据我所知,目前还没有。谢谢!

Ethan Brouwer

5 个答案:

答案 0 :(得分:4)

如果您已拥有ID,并且希望保留ID,请使用UPDATE语句。

答案 1 :(得分:3)

你无法使用insert in where,因为你应该创建一个新记录,没有引用要查找。您必须改为使用更新。

mysql_query("
UPDATE wp_posts 
SET excerpt = '" . $length . "'
WHERE ID = '" . $ID . "'
OR post_name LIKE '" . $ID . "%'");

答案 2 :(得分:1)

INSERT ...在表格中插入一个新行。它没有WHERE条款 如果要更新现有行,请使用UPDATE ...语句。

答案 3 :(得分:1)

Dan指出你的语法不正确。如果要限制WordPress中的摘录长度,可以使用过滤器。看看this post

答案 4 :(得分:0)

我没有检查过,但我认为你不能在INSERT查询中使用OR语句。也许在此之前再做一个查询,找出要插入的ID ...?