正如我之前在关于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();
?>
答案 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;
}