【问题标题】:Fatal error: Call to a member function bind_param() on a non-object using Update Query致命错误:使用更新查询在非对象上调用成员函数 bind_param()
【发布时间】:2017-11-13 09:48:31
【问题描述】:

我刚刚开始使用预制语句来帮助进行 SQL 保护。 我的脚本检查用户表中是否存在用户,如果它已经存在,它会运行:

$stmt = $Con->prepare("UPDATE `HA00`.`Users` SET `Unix` = ?,`4690` = ?,`LastIP` = ?,`LastLogin` = CURRENT_TIME( ) WHERE `Users`.`User` = ?;");

$stmt->bind_param('ssss',$PUnix,$P46,$IP,$PAD);
$PAD = $AD;
$PUnix = $Unix;
$IP = $_SERVER['REMOTE_ADDR'];
$P46 = $CTR;
$stmt->execute();

如果用户不存在,则他们的插入 SQL 查询几乎相同,可以正常工作。我很肯定我错过了一些简单的东西。我检查了其他页面,但没有发现问题。

编辑:

"var_dump($stmt);"显示布尔(假)

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    看不到参数$PUnix,$P46,$IP,$PAD。

    试着把 $stmt->bind_param('ssss',$PUnix,$P46,$IP,$PAD);低于这些变量。

    【讨论】:

    • bind_param 是少数可以在变量 php.net/manual/en/mysqli-stmt.bind-param.php 示例 1 之前声明的东西之一
    • 尝试调试 $stmt 看看是否有错误。查询可能有问题。
    【解决方案2】:

    尝试改用 $stmt->bindValue。它应该可以工作。

    【讨论】:

      猜你喜欢
      • 2013-11-19
      • 1970-01-01
      • 2015-10-22
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多