【发布时间】:2020-03-15 17:37:12
【问题描述】:
所以我运行了一个 php 文件,我将它连接到数据库并执行查询,但我最终得到一个错误说明
错误更新记录:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'SELECT SUM(total) FROM orders 附近使用的正确语法 WHERE created_at >= ( CURDA' 在第 1 行
但执行这些查询将按预期正确地在 SQL 中生成查询框。
这是 php 文件。
<?php
$username = "examplename";
$password = "abcdefg";
$dbname = "exampledb";
$conn = mysqli_connect('localhost', $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$fifteenDaysTotal = "SELECT SUM(total) FROM orders
WHERE created_at >= ( CURDATE() - INTERVAL 15 DAY ) AND orderstatus_id=5
ORDER BY created_at DESC";
$sql = "UPDATE `earnings` SET amount = $fifteenDaysTotal";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
?>
谢谢
【问题讨论】:
-
$fifteenDaysTotal 是一个子查询,或者您希望其结果等于金额?
-
正确陈述
"(SELECT SUM(total) FROM orders WHERE created_at >= ( CURDATE() - INTERVAL 15 DAY ) AND orderstatus_id=5 ORDER BY created_at DESC) as tt" $sql = "UPDATE earnings SET amount = $fifteenDaysTotal"; -
@PrabhjotSinghKainth 我得到 $fifteenDaysTotal 的结果。我正在使用结果来更新收入表..
-
@Gulshan 非常感谢。不得不纠正一些事情。 “as tt”不是必需的。无论如何,将其发布为答案:)
-
@RevanthKumar 选择语句的别名。您可以在更新时忽略它。答案添加在下面:)
标签: php mysql sql select mariadb