使用最新的 php 来创建一个向表用户添加行的函数。
class targil_db {
private $_pdo;
public function __construct() {
// username: root password: <blank> database: targil
$this->_pdo = new PDO(
'mysql:host=127.0.0.1;dbname=targil',
'root',
''
);
}
function addUser($username, $password) {
$md5password = md5($password);
$sql = <<<SQL
"INSERT INTO user (username,password) VALUES (:username,:password)"
SQL;
$stmt = $this->_pdo->prepare($sql);
$stmt->bindValue(':username', $username,PDO::PARAM_STR);
$stmt->bindValue(':password', $password,PDO::PARAM_STR);
$stmt->execute();
}
}
当我执行 addUser 函数时,这是我看到在 mysql 日志文件上执行的查询:
INSERT INTO user (username,password) VALUES (:username,:password)
如您所见,它没有将 :varname 替换为正确的值。我错过了什么?
我尝试了 bindValue 和 bindParam,但得到了相同的结果。
更新
即使我改变:username
和:password
使用,?,?
我
得到相同的结果。实际执行的查询仍然包含在其中,而不是实际变量。bindValue(1,$username)
bindValue(2,$password)
?,?