[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
2022-01-24 03:25:06
質問
同じ問題を抱えた他のStackOverflow(およびgoogle)の投稿にすべて目を通しましたが、私の問題を解決してくれるものはないようです。
PDOとPHPを使用しています。
私のコード
$vals = array(
':from' => $email,
':to' => $recipient,
':name' => $name,
':subject' => $subject,
':message' = >$message
);
print_r($vals);
try {
$pdo = new PDOConfig();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM messages WHERE `message` LIKE :message";
$q = $pdo->prepare($sql);
$q->execute(array(':message' => $vals[':message']));
$resp = $q->fetchAll();
foreach ($resp as $row) {
throw new Exception('Please do not post the same message twice!');
}
$sql = "INSERT INTO messages (from, to, name, subject, message) VALUES (:from, :to, :name, :subject, :message)";
$q = $pdo->prepare($sql);
$q->execute($vals);
}
catch(PDOException $e) {
echo $e->getMessage();
}
で、最初のprint_rは
Array ( [:from] => [email protected]
[:to] => [email protected]
[:name] => abc
[:subject] => abc
[:message] => abc )
これは期待されているものです(どれもnullです)。
というエラーが出力されます。
sqlstate[42000]: 構文エラーまたはアクセス違反です。1064 SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、'from, to, name, subject, message) VALUES ('[email protected]', '[email protected]' at line 1) の近くで使用する正しい構文を確認してください。
どうしたらいいのかわからないのですが、何かいい方法はありませんか?
解決方法は?
from
はSQLのキーワードです。クォートせずにカラム名として使用することはできません。MySQL では、カラム名のようなものはバックスティックで引用されます。
`from`
.
個人的には、気にせず、カラムの名前を変更します。
PS.コメントでご指摘の通りです。
to
もSQLキーワードなので、引用する必要があります。便利なことに、drupal.orgの人々は、引用符で囲むための
SQLの予約語リスト
.
関連
-
[解決済み] コマンドの同期がとれていない。
-
[解決済み】新しいPHPMailerはPHPMailerAutoload.phpが必要?
-
[解決済み] php5パッケージのインストール候補がない (Ubuntu 16.04)
-
[解決済み】PHPからPythonスクリプトを実行する
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み】In_arrayが動作しない。
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。
-
[解決済み】phpのシンタックスエラー、予期しないT_IFエラーを修正する方法は?[クローズド]。
-
[解決済み] mysql_field_nameを新しいmysqliに変更します。
-
[解決済み] PHP 未定義関数への呼び出し
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】++と*+の意味は何ですか?
-
[解決済み】不明なMySQLサーバーのホスト
-
[解決済み】 $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて]
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: パラメータが定義されていません
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み】Laravel 5.2 Storage::makeDirectory($dir) でディレクトリが作成されない。
-
[解決済み] 警告:mysqli_fetch_array()は、パラメータ1がmysqli_resultであることを期待する、オブジェクトはで指定された。
-
phpのAllowed memory size of 134217728 bytes枯渇問題の解決法
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
-
[解決済み] MySQLで予約語をテーブル名またはカラム名として使用したことによるシンタックスエラー