これが単なるタイプミスではないことを願っていますが、私は頭がおかしいです。このコード形式と構文は、私の別のプロジェクトでも機能しますが、何も得られません。
注 1: 変数はすべて入力されています。エコーで確認しました。
注 2: すべてのフィールド名が MySQL テーブルの実際のフィールド名であることを確認しました。すべてが少なくとも 30 の varchar です (これについては説明しませんでした)。
注 3: メッセージは次のとおりです。エラー SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。''username', 'userpassword', 'personname', 'familyname') VALUES ('hwilson':,'hwil' at line 1)
どんな助けでも感謝します。
try {
// THIS IS THE SECURE STUFF!
$sql = "INSERT INTO persons (username, userpassword, personname, familyname) VALUES (:username:,:userpassword,:personname,:familyname)";
$q = $pdo->prepare($sql);
$q->execute(array(':username'=>$username,
':userpassword'=>$userpassword,
':personname'=>$personname,
':familyname'=>$familyname));
}
catch(PDOException $e)
{
echo "Error " . $e->getMessage();
}
}