テーブルに「読み取り」という名前の列があります。その上で操作を実行しようとすると、PHP は「読み取り」を囲むエラーがあることを通知します。この種のエラーに関する以前の経験から、列名 'read' は不正であると判断しました。問題は、PHP で列の名前を変更できないことです。試行するたびに、エラーが発生します (実際には同じエラーです)。PHPMyAdmin に移動してそこで変更すると、その後は完全に機能します。
PHPで列名を変更する方法についてのアイデアはありますか?
次のように、テーブル名の前後にバッククォートを使用します。
select * from `read`
キーワードではなく名前を参照していることを MySQL に伝えます。
「名前の変更」とは、テーブル定義自体を変更しようとしていることを意味しますALTER TABLEか?もしそうなら、PHPコードとPHPMyAdminの間に違いはないはずです(後者はそれ自体が単なるPHPコードであるため)。発生する可能性がある唯一の問題は、PHPコードでPHPMyAdminとは異なるデータベースユーザーとしてログインしている場合です。ユーザーがそのテーブルに対するALTER権限を持っていることを確認する必要があります。
テーブルで通常のクエリを実行することだけを話していて、構文エラーの発生を停止したい場合は、フィールド名やテーブル名をバッククォートでラップできます。つまり、通常はチルダと`同じキーになります。~数字バー-そしてMySQLはフィールド名と予約語を区別できるようになります。