我一直在研究和研究这个,但找不到答案。这可能很简单。
我想使用字符串前缀用随机生成的数字更新我的字段。示例: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);
答案 0 :(得分:1)
使用mysql_query
您无法运行多个查询。问题出现在这里。
您必须使用mysqli's
multi_query
函数来运行多个查询。
作为一方不停止使用mysql_*
,因为它已被弃用。开始使用mysqli
,因为我提到了OR PDO
。