【问题标题】:Mysqli Prepare statement not workingMysqli Prepare 语句不起作用
【发布时间】:2014-04-10 21:29:02
【问题描述】:

尝试使用 MySQLi 执行准备好的语句时出现以下错误。

非常感谢任何帮助确定我做错了什么。

致命错误:在 etc 中的非对象上调用成员函数 prepare()。

我使用此语句正确连接:

<?php
$DBHost = "localhost";
$DBUser = "xxxxxx";
$DBPass = "xxxxxx";
$DBName = "creati38_chicos";
$dbconn = new mysqli($DBHost, $DBUser, $DBPass, $DBName);
// check connection
if ($dbconn->connect_error) {
//echo $dbconn->connect_error;
die('Sorry, we are having some problems right now. Please check back later.'); 
}
else{
echo "You have connected Successfully";
}
?>

然后我使用这个语句:

<?php
if ((isset($_POST["update"])) && ($_POST["update"] == "Update Appliance")) {

$stmt = $mysqli->prepare("UPDATE appliances SET
    category = ?,
    make = ?,
    model = ?, 
    description = ?, 
    price = ? 
    WHERE id = ?");
$stmt->bind_param('ssssdi',
    $_POST['category'],
    $_POST['make'],
    $_POST['model'],
    $_POST['description'],
    $_POST['price'],
    $_POST['id']);
$stmt->execute();
$stmt->close();

}
 ?>

【问题讨论】:

  • 好吧,错误告诉你所有:$mysqli 不是一个对象。很可能您的连接无法建立或变量不存在,因为连接显然是在不同的脚本中设置的。实际上,您只是使用了错误的名称...改用$dbconn...
  • 好像两个文件不一样,你下面的代码中包含上面的吗?

标签: php


【解决方案1】:

在您的情况下不是$mysqli-&gt;prepare(,而是$dbconn-&gt;prepare(

【讨论】:

    【解决方案2】:

    你在做

    $dbconn = new mysqli($DBHost, $DBUser, $DBPass, $DBName);
    

    并用作

    $mysqli->prepare()
    

    使两者相同

    【讨论】:

    • 为什么你有-1 :|我得到了完全相同的分析......请也减去我并解释:)
    • 不用担心 -1 。但是,是的,我很想知道为什么要投反对票。如果我做错了什么,请纠正我。
    【解决方案3】:

    使用 $dbconn 代替 $mysqli

    $stmt = $dbconn->prepare("UPDATE appliances SET
        category = ?,
        make = ?,
        model = ?, 
        description = ?, 
        price = ? 
        WHERE id = ?");
    $stmt->bind_param('ssssdi',
        $_POST['category'],
        $_POST['make'],
        $_POST['model'],
        $_POST['description'],
        $_POST['price'],
        $_POST['id']);
    $stmt->execute();
    $stmt->close();
    
    }
     ?>
    

    【讨论】:

      猜你喜欢
      • 2016-01-17
      • 2013-03-24
      • 2017-09-20
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      相关资源
      最近更新 更多