为什么这个mysqli准备好的声明不起作用?

时间:2015-09-10 21:31:32

标签: php mysql oop mysqli prepared-statement

我无法准备好任何准备好的陈述。我使用php和mysqli连接到mysql DB。我没有问题连接和拉取数据而不使用占位符进行查询,但是当我使用占位符并尝试绑定值时,我会遇到问题。任何帮助都会很棒!我还在多个域上尝试了这个代码,一个使用最新的语言。

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!";
}

1 个答案:

答案 0 :(得分:0)

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

替换它:

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

有了这个:

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