[ad_1]
こんにちは、登録フォームを検証しようとしていますが、次のエラーが表示されます。
SQLSTATE[HY093]: INVALID PARAMETER NUMBER: PARAMETER WAS NOT DEFINED
これは、名前フィールドを空のままにしたときです。 ただし、エラーメッセージが表示されますが、これもあります。 私が持っているコードの下を参照してください。 すべてを検証したいが、一度に 1 つのステップだけを実行する
私が試したこと:
if(isset($_POST['submit'])){ if (empty($_POST['FirstName'])) { $error[] = 'Please enter your Forename'; } else { $stmt = $conn->prepare('SELECT FirstName FROM Profile WHERE FirstName = :FirstName'); $stmt->execute(array(':FirstName' => $_POST['FirstName'])); $row = $stmt->fetch(PDO::FETCH_ASSOC); } try { //insert into database with a prepared statement $stmt = $conn->prepare('INSERT INTO Profile (FirstName, Password, EmailAddress, DueDate) VALUES (:FirstName, :password, :email, :duedate)'); $stmt->execute(array( ':FirstName' =>$_POST['FirstName'], $_POST['password'], $_POST['email'], $_POST['dueDate'] ));
解決策 1
これが古いことは知っていますが、他の誰かが同様の解決策を探してここに着陸した場合、これがそれかもしれません:
次のように、準備されたプレースホルダーと一致する連想キーが必要な場合、execute 配列の最後の 3 つのパラメーターにインデックスが付けられます。
PHP
$stmt->execute(array( ':FirstName' =>$_POST['FirstName'], ':password'=>$_POST['password'], ':email'=>$_POST['email'], ':duedate'=>$_POST['dueDate'] ));
[ad_2]
コメント