- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL文のエラー)
mySQLのエラー
このQ&Aのポイント
- 現在、TwitterのAPIを使って特定の@を含むツイートをmySQLに保存しようとしています。しかし、SQL文がエラーとなってしまいます。
- エラーメッセージは「You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'http://twitter.com/kenichiromogi">kenichiromogi:"でこ(3)子どもは' at line 1」となっています。
- DBへの接続は正常に行えているため、おそらくSQL文の記述に問題があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
mysql_query('INSERT INTO テーブル名 SET TIME="'.$zikan.'",NAME="'.$hito.'",COMMENT="'.$tabeta.'"') or die(mysql_error()); の手前で、 echo 'INSERT INTO テーブル名 SET TIME="'.$zikan.'",NAME="'.$hito.'",COMMENT="'.$tabeta.'"' を挿入して、出てきた結果を確認してみたらどうでしょう。 文法的に誤りのあるSQL文になっているはずです。 以下は推測ですが、 http://twitter.com/kenichiromogi">kenichiromogi: でこ(3)・・・ となっている手前に'が含まれていて、 ・・・COMMENT='・・・'http://twitter.com/kenichiromogi">kenichiromogi: でこ(3)子どもは ・・・ となっていて、httpの前で文字列が終了しているのではないかと思います。 ## 他のところかもしれません。 ## 他のところなら以下は無視してください。 ・・・この場合ならば、'をエスケープする必要あります。 MySQLで'を文字列中に指定したいときのエスケープ方法は、\' のようです。 http://dev.mysql.com/doc/refman/4.1/ja/string-syntax.html より。 ということで'を\'に置き換える関数を使えば対応できるはず。 (PHPは私はわからないので調べてください。)
お礼
ありがとうございます。 教えて頂いたとおり、文法を見なおしたら動くようになりました!