MySQL编写的语句在PHP中抛出错误

时间:2017-04-19 01:41:33

标签: php mysqli prepared-statement

这是连接到我的数据库的代码。我确信用户名,密码和数据库名称是正确的。

$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

我确信我已正确发送null以及我的查询。

我使用AMPPS,它在使用我的代码时工作。

我的问题是,当我打印$id$name$price时,我的结果始终为r'.*\/([^_]*)_.*'

2 个答案:

答案 0 :(得分:2)

Ali Rasheed是正确的,你应该在fetch()之后使用bind_result(),但这里有一个更大的问题。您无法将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();

当然需要替换列名。

你可以在这里看到一个很好的解释:https://stackoverflow.com/a/18753263/2694511

答案 1 :(得分:1)

完成后

$query->bind_result($id, $name, $price);   

使用

$query->fetch();