我正在尝试制作一个快速的小脚本,将一些虚拟数据添加到我添加到数据库表中的新列中,该表有 1000 个条目,因此手动执行并不是一个真正的选择。
我现在拥有的是:
<?php
$conn = mysql_connect('localhost', 'root', ''); mysql_select_db('cdb', $conn);
$string = "4050605040302030405060708070304050403040506070605040302010203040506070655545352515756535243515353545"; //50 values
$mpgsplit = str_split($string, 2);
for ($i=0; $i<=20; $i++)
{
for ($x=0; $x<=50; $x++)
{$r = mysql_query ("UPDATE cars SET mpg = '".$mpgsplit[$x]."'", $conn);}
}
?>
使用更新的问题不起作用,因为它只是在每次循环时用每个数字替换该列的每一行的值。对我来说,它达到了数组中的第 48 个并超时。
然后使用 insert 只会生成所有新行。
所以我需要一种方法来循环遍历每一行并更新它。
我最接近循环和处理表的单行是这样的:
$result = mysql_query("SELECT * FROM imported_orders");
$orderNo = $_POST['orderNo'];
$row = mysql_fetch_array($result, MYSQL_ASSOC);
if($orderNo>0&&$orderNo<=count($row))
{
$file = fopen('Order.txt', 'w');
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
但这只是将行作为变量,不确定我是否可以将其转换为我需要的内容。
可能有一个简单的函数可以做到这一点,但我尝试搜索但找不到它。可能还有一种更简单的方法来实现我总体上想要做的事情,所以这将是受欢迎的。
非常感谢所有帮助。 -汤姆
最佳答案
直接在 mysql 命令行或 PHP 脚本中发出此 sql 语句。
SET @r := 0;
UPDATE cars
SET mpg = (@r := @r + 1)
ORDER BY
RAND()
此 sql 语句会将 0 到数据库总行数之间的数字分配给随机行。我想这可能会有所帮助
关于php - 在 PHP 中循环并更新 sql 表的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22409877/