简体   繁体   English

PHP mysqli->准备不返回任何内容

[英]PHP mysqli->prepare returning nothing

I'm trying to use a mysqli connection to retrieve rows from my database however I continue to receive a 500 internal server error no matter what I try. 我正在尝试使用mysqli连接从数据库中检索行,但是无论我如何尝试,我都会继续收到500个内部服务器错误。

$getUserQuery = "SELECT * FROM members WHERE name = ? AND member_id > 0";
$getUserStatement = $mysqli_conn->prepare($getUserQuery);
$getUserStatement->bind_param("s", $name);

$mysqli_conn->ping() results in a value of true so I know there's no issue with the database connection. $ mysqli_conn-> ping()的结果为true,所以我知道数据库连接没有问题。 var_dump($getUserStatement) results in bool(false) so there's some issue with the prepare. var_dump($ getUserStatement)的结果为bool(false),因此prepare存在一些问题。 Whole code: 整码:

$user_dirty = $_GET['u'];
$pass_dirty = $_GET['p'];

$getUserQuery = "SELECT * FROM members WHERE name = ? AND member_id > 0";
$getUserStatement = $mysqli_conn->prepare($getUserQuery);

if ($getUserStatement) {
    echo($getUserStatement);
} else {
    echo("not good");
}

$getUserStatement->bind_param("s", $user_dirty);
$getUserStatement->execute();
$getUserResult = $getUserStatement->get_result();

And how I create my DB connection: 以及如何创建数据库连接:

$mysql_host = "host";
$mysql_user = "user";
$mysql_password = "pass";
$mysql_database = "db";

$mysqli_conn = new mysqli($mysql_host, $mysql_user, $mysql_password, $mysql_database);

You gets 500 internal error because statement is false probably( https://stackoverflow.com/a/845025/2962442 turn on display errors), not resource like it should be, it can be caused by lost connection, try ping or reconnect before prepare. 您可能会收到500个内部错误,因为语句可能为假( https://stackoverflow.com/a/845025/2962442打开显示错误),而不是应有的资源,这可能是由于连接丢失导致的,请尝试ping或重新连接准备。

Example good code: 好代码示例:

$getUserQuery = "SELECT * FROM members WHERE name = ? AND member_id > 0";
$getUserStatement = $mysqli_conn->prepare($getUserQuery);
if ($getUserStatement) {
    $getUserStatement->bind_param("s", $name);
} else {
    //statement is false, not good
}

and good example of connection part 和连接部分的好例子

$mysql_host = "host";
$mysql_user = "user";
$mysql_password = "pass";
$mysql_database = "db";

$mysqli_conn = new mysqli($mysql_host, $mysql_user, $mysql_password, $mysql_database);    
if (!$mysqli_conn) {
    //not connected...
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM