【解決方法】SQLSTATE[HY093]: INVALID PARAMETER NUMBER: PARAMETER WAS NOT DEFINED エラーがフォームに表示されました

プログラミングQA

[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]

コメント

タイトルとURLをコピーしました