导致Page的PHP get_result()无法显示

时间:2014-02-11 20:55:22

标签: php mysqli

这是我的代码:

/* database connection tested and working*/

if (!($sql = $mysqli->prepare("SELECT username FROM users WHERE username=?"))) 
{
    echo "Prepare failed";
}

if (!$sql->bind_param("i", `ryan`)) 
{
    echo "Binding parameters failed";
}

if (!$sql->execute()) 
{
    echo "Execute failed";
}

到目前为止,一切正常,没有错误显示,我可以print_r $sql数组。

一旦我添加此代码:

$result = $sql->get_result();

我收到错误消息“网站无法显示该网页”。我删除它,它工作正常。

PS:这是$sql

的打印件
mysqli_stmt Object ( [affected_rows] => -1 [insert_id] => 0 [num_rows] => 0 [param_count] => 1 [field_count] => 1 [errno] => 0 [error] => [error_list] => Array ( ) [sqlstate] => 00000 [id] => 1 ) 

3 个答案:

答案 0 :(得分:0)

尝试添加这些代码行以进行错误报告。您可以更好地描述问题。

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

答案 1 :(得分:0)

只有安装了MySQLnd才能使用 get_result 功能。

http://us2.php.net/manual/en/mysqli-stmt.get-result.php

答案 2 :(得分:0)

第一件事:

if (!$sql->bind_param("i", `ryan`)) 
{
    echo "Binding parameters failed";
}

应该是:

if (!$sql->bind_param("s", 'ryan')) 
{
    echo "Binding parameters failed";
}

你有``包裹ryani的反引号,这是整数而不是字符串。

-i  corresponding variable has type integer

-d  corresponding variable has type double

-s  corresponding variable has type string

-b  corresponding variable is a blob and will be sent in packets