【发布时间】:2013-07-08 12:55:56
【问题描述】:
我在mysqli中更改了PDO的连接类型。
PDO_conection
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=exercise', 'root', 'root');
} catch (PDOException $e){
exit('Datebase error.');
}
?>
mysqli_conection
<?php
$host = "localhost";
$username = "root";
$password = "root";
$dbname = "exercise";
$mysqli = new mysqli($host, $username, $password, $dbname);
if(mysqli_connect_errno()) {
echo "Error: Could not connect to database.";
exit;
}
?>
现在正在尝试在 mysqli 中更改 PDO 中编写的一段代码。
PDO_code
$query = $pdo->prepare("SELECT * FROM users WHERE user_name=? AND user_password=? LIMIT 1");
$query->bindValue(1, $username, PDO::PARAM_STR);
$query->bindValue(2, $password, PDO::PARAM_STR);
$query->execute();
$num = $query->rowCount();
$row = $query->fetch(PDO::FETCH_ASSOC);
这是我尝试在 mysqli 中改变它
mysqli_code
$query = $mysqli->prepare("SELECT * FROM users WHERE user_name=? AND user_password=? LIMIT 1");
$query->bind_result($username, $password);
$query->execute();
$num = $query->num_rows;
$row = $query->fetch_assoc();
我哪里错了?
【问题讨论】:
-
这是一个罕见的过渡。我很想知道为什么要这样?除此之外。您的 mysqli 代码是错误的。你需要给自己一个教程并跟随它。
-
第一个看起来非常糟糕“SELECT * FROM users WHERE user_name=? AND user_password=?”,我不会抨击选择所有列,但是按用户名和密码选择看起来真的很阴暗.为什么不直接从username = post/get username的用户那里获取密码,然后使用php密码功能进行比较呢?主题:你有什么错误吗?