gpt4 book ai didi

php - 查询 mariadb 数据库在 phpmyadmin 中有效,但在 php 中无效

转载 作者:行者123 更新时间:2023-11-29 05:53:27 25 4
gpt4 key购买 nike

注意:我知道准备好的语句是一种更安全的方法。我的最终代码总是使用准备好的语句,但这是我工作流程的最后一步,因为准备好的语句更难调试。

我从 php 向数据库发送查询的方法是:

<?php
include_once 'dbh.inc.php';
$sql = "<sql statement goes here>";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)){
echo "<error message goes here>";
} else {
mysqli_stmt_execute($stmt);
}
?>

我已经对其进行了测试,它适用于大多数有效的 sql 命令。

然后在开发的过程中,返回了错误信息。我将 sql 命令更改为已知良好,并且它再次运行良好。因此,我使用 echo $sql; 将损坏的命令回显到浏览器中,选择它,将它复制到 phpMyAdmin,它完全按照我想要的方式执行。

UPDATE products SET reserved = 20600 WHERE product = 'product1'; UPDATE products SET reserved = 1600 WHERE product = 'product2';

执行 mysqli_stmt_error($stmt) 返回:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UPDATE products SET reserved = 1600 WHERE product = 'product2'' at line 1

为什么用phpMyAdmin用上面的方法不行?

最佳答案

涉及mysqli_stmt_init()mysqli_stmt_prepare()mysqli_stmt_execute()的过程,一次只能执行一个命令。 phpMyAdmin 可以一次执行多个命令。语句中给出的命令实际上是两条,中间用“;”隔开。这就是 phpMyAdmin 能够运行它的原因。

关于php - 查询 mariadb 数据库在 phpmyadmin 中有效,但在 php 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51941182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com