PHP中MySQL准备的语句抛出错误
这是连接到我的数据库的代码。我确信用户名、密码和数据库名是正确的PHP中MySQL准备的语句抛出错误,php,mysqli,prepared-statement,Php,Mysqli,Prepared Statement,这是连接到我的数据库的代码。我确信用户名、密码和数据库名是正确的 $Myconn = mysqli_connect($this->host, $this->user, $this->pass, $this->DBname); 这是准备语句的代码: $query =$Myconn->prepare("SELECT * FROM `AD` WHERE name=?"); $query->bind_param('s', $AD_Name); $query->
$Myconn = mysqli_connect($this->host, $this->user, $this->pass, $this->DBname);
这是准备语句的代码:
$query =$Myconn->prepare("SELECT * FROM `AD` WHERE name=?");
$query->bind_param('s', $AD_Name);
$query->execute();
$query->store_result();
$query->bind_result($id, $name, $price);
我确信我正确地发送了$AD_Name
,以及我的查询
我使用AMPS,它在使用我的代码时工作
我的问题是,当我打印$id
或$name
或$price
时,我的结果总是null
做了之后
$query->bind_result($id, $name, $price);
使用
之后
$query->bind_result($id, $name, $price);
使用
Ali Rasheed说得对,您应该在执行
bind_result()
之后使用fetch()
,但这里有一个更大的问题。您不能将bind_result()
与SELECT*…
一起使用。它将无法正常工作,因为bind_result()
不知道所选元素的顺序,因此它不知道哪个变量应该获得哪个值。相反,您应该修改如下内容:
$query =$Myconn->prepare("SELECT id, name, price FROM `AD` WHERE name=?");
$query->bind_param('s', $AD_Name);
$query->execute();
$query->store_result();
$query->bind_result($id, $name, $price);
$query->fetch();
当然,必要时替换列名
关于这一点,您可以在这里看到一个很好的解释:阿里·拉希德(Ali Rasheed)说得对,您应该在执行
bind\u result()
后使用fetch()
,但这里有一个更大的问题。您不能将bind_result()
与SELECT*…
一起使用。它将无法正常工作,因为bind_result()
不知道所选元素的顺序,因此它不知道哪个变量应该获得哪个值。相反,您应该修改如下内容:
$query =$Myconn->prepare("SELECT id, name, price FROM `AD` WHERE name=?");
$query->bind_param('s', $AD_Name);
$query->execute();
$query->store_result();
$query->bind_result($id, $name, $price);
$query->fetch();
当然,必要时替换列名
你可以在这里看到一个很好的解释:很高兴帮助mate很高兴帮助mate