PHPでサイト更新状況を自動取得しようと妄想中。かなり長い妄想になっていまい、もはや「幻想」との、ヤジが聞こえてくるが…泣。
取得したデータを、MySQLに追加しようとして失敗
- データベースサーバ=サーバのバージョン: 5.6.24 - MySQL Community Server (GPL)
- phpMyAdmin=バージョン情報: 4.3.11, 最終安定バージョン: 4.4.10
phpMyAdminでSQLを実行して成功。PHPに書き出してくれるリンクがあるのでクリック、それをコピペし、PHPスクリプトに載せて実行すると「INSERTクエリーが失敗しました。」とのエラー案内が表示されます。
PHPの文法エラー
「You have an error in your SQL syntax」と表示されます。「"」「'」そしてエスケープシーケンスなどのまちがいだろうと思ってイロイロ試してみたのですが、悔しいかな、繰り返し…グスン。
INSERT INTO なんとか成功
以下のソース、事前に必要なデータベース接続、データベース選択は略しているです。悪しからず。
また、「table_name」「column_name」は実際に使っているのに変更してくださいね。DBに追加したい値は「titleTEST」ということで…。
$title = "('titleTEST')"; $sql = "INSERT INTO table_name(column_name) VALUES " . $title;
1行目:「$title」は変数名で、=の右にある「"」と「"」の間にある「'titleTEST'」を代入しているです。もちろん「'」(シングルクォーテーション、アポストロフィ?)もエスケープせずそのまま…。ここが隘路でした。グスン。
2行目:sqlの追加実行。最初、変数「$title」に「'」を含めず、「($title)」とかしてましたがNG。成功してみれば何のことは無い、変数に「'」を含めて入れてしまえ~みたいなことでした。「.」は左右を結び付ける意味なので、結果的にできあがるのは「"INSERT INTO table_name(column_name) VALUES " ('titleTEST')」みたいなことになり、phpMyAdminでつくったのと齟齬が生じると爺は感じたですが、まあ、これで動く、ということで俗にいう「仕様」ということかと…シクシク。
「"」「'」「()」などに泣かされたのでありました。浅学菲才そのまま、行き当たりバッタリの爺であります…グスン。