【发布时间】:2015-04-08 10:57:08
【问题描述】:
我正在尝试使用 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() 的值是 true,所以我知道数据库连接没有问题。 var_dump($getUserStatement) 导致 bool(false) 所以准备有一些问题。完整代码:
$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();
以及我如何创建数据库连接:
$mysql_host = "host";
$mysql_user = "user";
$mysql_password = "pass";
$mysql_database = "db";
$mysqli_conn = new mysqli($mysql_host, $mysql_user, $mysql_password, $mysql_database);
【问题讨论】:
-
你需要像这样绑定参数
$getUserStatement = $mysqli_conn->prepare($getUserQuery); $getUserStatement ->bind_param('s', $yoname); $getUserStatement ->execute(); -
这正是我在此之后所做的。我将用更多代码更新帖子。
-
@Mihai 我认为他在 var_dump 上得到了错误,因为连接丢失或类似情况,因为在他设置参数之前,statment 必须是资源
-
@user2962442 我在准备后尝试 ping 并返回 true,所以我知道连接仍在维护中。
-
@Swizzbeat 在准备之前尝试 ping,它会在失去连接时重新连接