1

我一直在研究和研究这个,但找不到答案。这可能很简单。

我想使用字符串前缀使用随机生成的数字更新我的字段。示例:项目 283940。最好我想从 1000 开始,然后递增。我似乎已经对随机数进行了大部分查询,但是看起来我错过了一些东西。

为什么这会导致语法错误?

$query = "SET @r := 1000; UPDATE discography SET pagename = (@r := @r + 1) ORDER BY RAND()";

mysql_query($query);

产量:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE discography SET pagename = (@r := @r + 1) ORDER BY RAND()' at line 1

一旦错误被解决,我想知道如何在变量的开头添加前缀“item”。提前谢谢了。

编辑

看起来我的服务器使用的是旧版本的 PHP,所以我不能使用 mysqli。在解决我的其他问题方面,它效率低下,但这符合我的需求:

$setit = "SET @r := 1000";
$changenames = "UPDATE discography SET pagename = (@r := @r + 1) ORDER BY RAND()";
$prepend = "UPDATE discography SET pagename=CONCAT('item',pagename)";
mysql_query($setit);
mysql_query($changenames);
mysql_query($prepend);
4

1 回答 1

1

使用mysql_query你不能运行多个查询。问题就出现在这里。

您必须使用mysqli's multi_query函数来运行多个查询。

并且作为一个方面不要停止使用mysql_*,因为它已被弃用。开始使用mysqli我提到的 OR PDO

于 2013-03-20T06:43:01.410 回答