我一直在研究和研究这个问题,但找不到答案。这可能很简单。
我想用带有字符串前缀的随机生成的数字更新我的字段。示例:item283940。最好我想从 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);
最佳答案
使用 mysql_query
您不能运行多个查询。问题就出在这里。
你必须使用 mysqli 的
multi_query
函数来运行多个查询。
另一方面,不要停止使用 mysql_*
,因为它已被弃用。开始使用我提到的 mysqli
或 PDO
。
关于php - MySQL随机生成带有字母前缀的数字,使用变量时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15516857/