php更新记录重复区域

时间:2016-03-01 01:01:10

标签: php mysql

正如我之前在关于cron工作的最后一个问题中所述,我现在正试图写一个,但似乎遇到了问题。这是我得到的最接近的。我希望将数据库中的每条记录更新一次。

示例如果字段是30,那么当运行此脚本时它将变为31.但是我有MULTIPLE字段,我希望所有字段都增加1。

这是我目前所写的内容,但它不起作用,但我得到了“记录更新成功”的回声,但没有任何变化。如果我更改它以便$ Age = $ Test然后我插入一个ID的随机数,它将最终等于测试。如果我说$ Age = $ NewAge和随机ID,它会将我数据库中的变量更改为302.我不知道它在哪里拉随机302.

有什么建议吗?

这是我的代码:

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "RR";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 

$sqlSelect = "SELECT id, Age FROM Horse";
$result = $conn->query($sqlSelect);

do{
$id = $row['id'];
$Age = $row['Age'];
$NewAge = $Age + 1;
$Test = 200;


echo $id, ' ', $Age, ' ', $NewAge; ?> <br/>

<?php 
$sqlUpdate = "UPDATE Horse SET Age='$NewAge' WHERE id='$id'";


}
while($row = $result->fetch_assoc());


if ($conn->query($sqlUpdate) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}

$conn->close();
?>

1 个答案:

答案 0 :(得分:0)

问题非常模糊且难以理解,但正如@rjdown所说,这将更新数据库中的所有行,并将Age增加1。

注意:无需从数据库中提取记录,也无需对其进行循环。只需一行SQL就会更新所有行。

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "RR";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sqlUpdate = "UPDATE Horse SET Age = Age + 1";

if ($conn->query($sqlUpdate) === TRUE) {
echo "All records updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}