考えられる原因を教えていただけたらと思います。
messegeの内容をデータベースへ入力しようとするとエラーになります。
$messege="<a href="http://www.test.co.jp" target="blank">http://www.test.co.jp</a>
センテンス中にダブルコーテーションが含まれているためです。
$messege="<a href=\"http://www.test.co.jp\" target=\"blank\">http://www.test.co.jp</a>";
とデータ中のダブルコーテーションの前に\(半角の¥マーク)を置くか
$messege='<a href="http://www.test.co.jp" target="blank">http://www.test.co.jp</a>';
のように、データの前後をシングルコーテーションでくくるようにすれば良いと思います。
これはMySQLの問題ではなくPHPでの記述方法の問題だけだと思います。
今回は、""(ダブルクォーテーション)がきちんと指定されていないのが原因と思われます。
変数に保存する際に、html文は下記のように単純に''(ダブルクォーテーション)で囲むようにすると間違いが少なくなりデバッグもしやすくなると思いますよ。
$messege="<a href='http://www.test.co.jp' target='blank'>http://www.test.co.jp</a>"
最近全然PHPに触れてないからエスケープ記号が\であったか自信はないのですが、html文中にどうしても""(ダブルクォーテーション)を使用したい場合は""をエスケープして
$messege="<a href=\"http://www.test.co.jp\" target=\"blank\">http://www.test.co.jp</a>"
のように記述すればOKだと思います。
ご存知だとは思いますが、""(ダブルクォーテーション)で囲んだ中での変数($hoge等)は展開しされてしまうので、そちらもお気を付けください。
回答ありがとうございます。エスケープ処理で上手くいきました。
PHPの文字列では'か"で両端を囲まなくてはなりません。
文字列の中に"が含まれていた場合、それが文字列の一部なのか括りの一部なのか判断に困ります。
$messege="<a href="http://www.test.co.jp" target="blank">http://www.test.co.jp</a>
の場合
$messege='<a href="http://www.test.co.jp" target="blank">http://www.test.co.jp</a>';
のように'で括るのが面倒がなくていいと思います。
回答ありがとうございます。質問文では最後の"が抜けていたようです。エスケープ処理にて動作しました。
センテンス中にダブルコーテーションが含まれているためです。
$messege="<a href=\"http://www.test.co.jp\" target=\"blank\">http://www.test.co.jp</a>";
とデータ中のダブルコーテーションの前に\(半角の¥マーク)を置くか
$messege='<a href="http://www.test.co.jp" target="blank">http://www.test.co.jp</a>';
のように、データの前後をシングルコーテーションでくくるようにすれば良いと思います。
回答ありがとうございます。ご指摘のようにダブルコーテーションの問題でした。非常に分かりやすい解説でした。
ついこの間、同じ症状に悩まされました。私はスクリプト等には詳しくないのでなぜおかしくなったかはわかりませんが、hrefやtargetのダブルクォーテーションをとったら正常に稼動しました。
href="http://www.test.co.jp"
target="blank"
の部分を
target=blank
回答ありがとうございます。エスケープ処理で上手くいきました。
回答ありがとうございます。ご指摘のようにダブルコーテーションの問題でした。非常に分かりやすい解説でした。