我在 Host Gator 上运行并使用 mySQL 后端,并使用 phpMyAdmin 作为 GUI。
我正在使用 PHP 编码。
我在执行标准准备语句时没有遇到任何问题,但突然间,在我的第一个删除语句中,似乎出现了错误。我无法发现或调试它。以下代码是发生错误的地方。
//Error occurs right here
if(!($sql = $con->prepare("DELETE FROM quoteItems WHERE quoteID=?")))
{ echo "FAIL - Prepare failed: (" . $con->errno . ") " . $con->error;}
if(!$sql->bind_param('i', $quoteID))
{echo "FAIL - Binding parameters failed: (" . $sql->errno . ") " . $sql->error;}
if(!$sql->execute())
{echo "FAIL - Execute failed: (" . $sql->errno . ") " . $sql->error;}
在我当前的情况下,var_dump($quoteID);
的输出给出了字符串“44”
。
生成的错误消息是FAIL - 准备失败:(0) fatal error :在非对象上调用成员函数bind_param()
最佳答案
@Sean 在 OP 下的评论中正确解决了这个问题。
Is $con a valid mysqli object? Do you have DELETE rights for this db user?
用户没有 DELETE 权限 - 为用户提供此权限解决了问题。 $con 对象是一个有效的对象。
关于php - 为什么这个 SQL 语句失败?调用非对象上的成员函数bind_param(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36145406/