这是连接到我的数据库的代码。我确信用户名,密码和数据库名称是正确的。
$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'.*\/([^_]*)_.*'
。
答案 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();