使用mysqli的SELECT返回null

时间:2015-09-07 19:52:27

标签: php mysqli

我正在尝试使用mysqli从表中选择一行,但我能得到的是一堆空值,我真的不知道为什么。相同的查询使用普通的php mysql工作,如果我尝试使用参数在phpMyAdmin上执行相同的查询,我会通过罚款。

以下是代码:

"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

返回

{{1}}

我已经尝试在这里和谷歌搜索答案,但我找不到任何接近我的问题的答案。 我做错了什么?

2 个答案:

答案 0 :(得分:2)

您必须决定是否使用程序或OOP方法。从您的代码中,您似乎调用了mysqli扩展的过程版本,然后尝试使用对象。请参阅the documentation示例,包括面向对象和程序,并决定单个示例。

答案 1 :(得分:1)

  

作者的最终解决方案(从问题内容转移):

根据用户@RiggsFolly的建议,我根本没有得到结果,而且我正在按照用户@Alex的建议混合程序和OOP方法。以下是工作代码,供将来参考此类问题的任何人参考:

$coupon = $_GET['coupon'];
if ($sql = mysqli_prepare($con, "SELECT * FROM coupon WHERE coupon=?;")){
    mysqli_stmt_bind_param($sql, 's', $coupon);
    mysqli_stmt_execute($sql);
    mysqli_stmt_bind_result($sql, $ID, $coupon, $discount, $uses);
    mysqli_stmt_fetch($sql);
    $data = array(
        'ID' => $ID,
        'coupon' => $coupon,
        'discount' => $discount,
        'uses' => $uses
    );
    echo json_encode($data);
}else{
    echo json_encode(FALSE);
}