【发布时间】:2015-09-07 19:52:27
【问题描述】:
我正在尝试使用 mysqli 从表中选择一行,但我只能得到一堆空值,我真的不知道为什么。相同的查询使用普通的 php mysql 工作,如果我尝试使用我传递的参数在 phpMyAdmin 上执行相同的查询,则可以正常运行。
代码如下:
$con = mysqli_connect('localhost', 'user', 'pass',"db");
if (mysqli_connect_errno()){
die("Failed to connect to MySQL: " . mysqli_connect_error());
}
$coupon = $_GET['coupon'];
$sql = mysqli_prepare($con, "SELECT * FROM coupon WHERE coupon=?");
$sql->bind_param('s', $coupon);
$sql->execute();
$sql->store_result();
echo $sql;
返回
"affected_rows":null,
"insert_id":null,
"num_rows":null,
"param_count":null,
"field_count":null,
"errno":null,
"error":null,
"error_list":null,
"sqlstate":null,
"id":null
我已经尝试在这里和谷歌上搜索答案,但我找不到任何接近我的问题的东西。 我做错了什么?
【问题讨论】:
-
mysqli_error() 说什么?您需要添加一些错误检查。
-
您确定
mysqli_prepare()正在返回一个语句而不是错误吗?你确定$_GET['coupon']正在返回你所期望的吗? -
看在埃文斯的份上。 R.T.?.M 尝试获取结果。
$sql是prepare的结果,而不是结果行 -
@Mike
mysqli_error()为空。 -
@Chris 是的,
$_GET['coupon']和mysql_prepare()都可以正常工作