【发布时间】:2015-04-24 13:58:42
【问题描述】:
我有一个在 PDO 中运行良好的查询,但我需要将查询转换为 MySQLi 以与旧服务器兼容。
这里是 PDO 查询:
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "SELECT * FROM users WHERE username=:username";
$st = $conn->prepare( $sql );
$st->bindValue( ":username", $username, PDO::PARAM_STR );
$st->execute();
while ( $row = $st->fetch() ) {
$db_username = $row['username'];
$db_password = $row['password'];
}
这是我对 MySQLi 的要求,但它似乎不起作用:
$mysqli = new mysqli( 'localhost', DB_USERNAME, DB_PASSWORD, DB_NAME );
$username = mysqli_real_escape_string($mysqli, $username);
$query = "SELECT * FROM users WHERE username=$username";
if ($result = $mysqli->query($query)) {
while ($obj = $result->fetch_object()) {
$db_username = $obj->username;
$db_password = $obj->password;
}
mysqli_free_result($result);
}
任何帮助将不胜感激:)
【问题讨论】:
-
$username 是从登录表单中捕获的变量(上面未包含)
-
$query = "SELECT * FROM users WHERE username=' ".$username.' "";
-
@saty NONONO,那么你没有参数化你的查询..