PHPエラー:バインドされた変数の数がトークンの数と一致しません。PHP無効なパラメータ番号:
ここでは何が欠けていますか?私はmedアプリケーションのための新しいユーザーを追加しようとしています。
public function register($uname,$umail,$upass,$fname,$llastname)
{
try
{
$new_password = password_hash($upass, PASSWORD_DEFAULT);
$stmt = $this->conn->prepare("INSERT INTO users(name, lastname, user_name, user_email, user_pass) VALUES(:fname, :llastname, :uname, :umail, :upass)");
$stmt->bindparam(":fname", $fname);
$stmt->bindparam(":llastname", $llastname);
$stmt->bindparam(":uname", $uname);
$stmt->bindparam(":umail", $umail);
$stmt->bindparam(":upass", $new_password);
$stmt->execute();
return $stmt;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
public function doLogin($uname,$umail,$upass)
{
try
{
$stmt = $this->conn->prepare("SELECT name, lastname, user_id, user_name, user_email, user_pass FROM users WHERE name=:fname, lastname=:llastname, user_name=:uname OR user_email=:umail ");
$stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() == 1)
{
if(password_verify($upass, $userRow['user_pass']))
{
$_SESSION['user_session'] = $userRow['user_id'];
return true;
}
else
{
return false;
}
}
}
catch(PDOException $e)
{
//HTTPS
echo $e->getMessage();
}
}
addUser.php正しくバインドしましたか?ここで
$uname = strip_tags($_POST['txt_uname']);
$umail = strip_tags($_POST['txt_umail']);
$upass = strip_tags($_POST['txt_upass']);
$fname = strip_tags($_POST['txt_fname']);
$llastname = strip_tags($_POST['txt_llastname']);
無効な構文を必要とするロジックを達成するために括弧を使用する必要があります。マニュアルを参照してください。https://dev.mysql.com/doc/refman/5.7/en/select.html –