MySQL随机生成带字母前缀的数字,使用变量时出错?

时间:2013-03-20 06:37:03

标签: php mysql

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

我想使用字符串前缀用随机生成的数字更新我的字段。示例:item283940。我最好从1000开始,然后再增加。我似乎对随机数有了大部分查询,但看起来我错过了什么。

为什么会导致语法错误?

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

mysql_query($query);

Yeilds:

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

1 个答案:

答案 0 :(得分:1)

使用mysql_query您无法运行多个查询。问题出现在这里。

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

作为一方不停止使用mysql_*,因为它已被弃用。开始使用mysqli,因为我提到了OR PDO