【问题标题】:Why is this mysqli prepared statement not working? [closed]为什么这个 mysqli 准备好的语句不起作用? [关闭]
【发布时间】:2015-12-07 08:00:41
【问题描述】:

我无法让任何准备好的语句为我工作。我正在使用 php 和 mysqli 连接到 mysql 数据库。在不使用占位符进行查询的情况下建立连接和提取数据没有问题,但是当我使用占位符并尝试绑定值时,我会遇到问题。任何帮助都会很棒!我还在多个域上尝试过此代码,其中一个域使用最新的语言。

DB 是一个名为 resourceTable 的表,作为 id、first_name 和 last_name 列

我现在遇到这个错误

致命错误:在第 17 行的 /home/marshy/public_html/index.php 中调用未定义的方法 mysqli::bind_param()

这是我的代码

$db_host = "*****************";
$db_user = "************";
$db_pass = "************";
$db_name = "************";

$conn = new mysqli($db_host,$db_user,$db_pass,$db_name);

$id = 2;

$sql = "SELECT first_name FROM resourceTable WHERE id =?";

$stmt = $conn->prepare($sql);

$stmt = $conn->bind_param('i', $id);

$stmt = $stmt->execute();

$stmt->bind_result($first_name);

if($stmt->fetch()){
    echo "First Name: " . $first_name;
}else{
    echo "We Have Issues!";
}

【问题讨论】:

  • 如果 id 来自 Type Integer ?所以在 $stmt = $conn->bind_param('i' $id); 中使用 'i';
  • 当我尝试过时它仍然无法正常工作
  • ups: $stmt = execute(); -> $stmt->执行();
  • 您在bind_param 调用中缺少逗号,但这一定是复制错误,否则您的代码根本无法运行。

标签: php mysql oop mysqli prepared-statement


【解决方案1】:

MySQLi 没有名为 bind_param() 的方法。

替换这个:

$stmt = $conn->bind_param('i', $id);

有了这个:

$stmt->bind_param('i', $id);

【讨论】:

    猜你喜欢
    • 2020-08-21
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2013-11-19
    • 2014-04-11
    • 2012-06-07
    相关资源
    最近更新 更多