テーブルユーザーに行を追加する関数を作成するために最新の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)
ても同じ結果が得られます。実際に実行されるクエリ?,?
には、実際の変数ではなく、まだ含まれています。