我的任务是重新生成每个类代码,但是有超过4,000个,我宁愿不手动执行。在我真正开始搞乱实时服务器之前,我决定使用相同的结构创建一个测试数据库。
我在尝试多次运行同一查询时遇到问题。我想多次运行它,因为我有一个随机生成的字符串(每次运行时也会生成)需要替换其他字符串。
任何帮助,伙计们?
for ($i = 0; $i < 8; $i++) {
$password = str_rand();
$sql = "UPDATE test "
. "SET classCode = '$password'".
. "WHERE id = '$i'";
}
mysql_select_db('workshe3_worksheetwonder');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not update data: ' . mysql_error());
}
echo "All codes regenerated successfully.";
mysql_close($conn);
}
答案 0 :(得分:0)
您的代码应如下所示
mysql_select_db('workshe3_worksheetwonder');
for ($i = 0; $i < 8; $i++) {
$password = str_rand();
$sql = "
UPDATE test
SET classCode = '$password'
WHERE id = '$i'";
$retval = mysql_query($sql, $conn) or die('Could not update data: ' . mysql_error());
}
echo "All codes regenerated successfully.";
mysql_query()
是需要进入循环的函数,因为它实际上正在进行更新。您的$sql
只是一个包含命令的字符串。如果你没有在你的循环中运行mysql_query()
那么你的字符串就会被覆盖而不被使用。
mysql_ functions are deprecated,这意味着您不应该将它们用于新代码。如果您遵循该链接,则有一些替代协议的示例。