1

hmtlコンテンツをDBに挿入する方法、以下は私が試みているが成功しないコードです。それがどのように行われるかを助けてくれる体はありますか-:

<?php    
$connect=mysql_connect("localhost","root","");
$db=mysql_select_db("send_mailer",$connect);
$msg= <<<HTMK
<html>
<body>
<table cellpadding='0' cellspacing='0' align='center'>
<tr>
<td align='center'><img src='http://d32vlg867bsa1v.cloudfront.net/z/prod/w/2/b/home-images/Sept/27092013/tops-l.jpg' /></td></tr>
<tr>
<td align='center'>
<img src='http://d32vlg867bsa1v.cloudfront.net/z/prod/w/2/b/home-images/Sept/19092013/row3-01-l.jpg' />
</td>
</tr>
<tr>
<td align='center'>
<img src='http://d32vlg867bsa1v.cloudfront.net/z/prod/w/2/b/home-images/Sept/27092013/shoes-l.jpg' />
</td>
</tr>
</table>
</body>
</html>
HTMK;
$query_1="INSERT INTO content (htmk) values ($msg)";
$result=mysql_query($query_1);
?>
DB table structure-:
1   htmk    varchar(5000)
4

4 に答える 4

1

できれば PDO モジュールを使用して、パラメータ化されたクエリの使用について学んでください。他の回答が示唆しているすべてのエンコーディング hoohah を実行する必要はありません。この質問を参照してください: PHP で SQL インジェクションを防ぐにはどうすればよいですか? 質問は SQL インジェクションに関するものですが、パラメーター化されたクエリを使用する原則は同じです。

于 2013-09-30T21:33:00.547 に答える
1

クエリの文字列値の前後に " または ' がないと思います。

$msg には特殊な文字が含まれているため、手動でエスケープするか、mysql_real_escape_string 関数を使用する必要があります。

$query_1="INSERT INTO content (htmk) values ('".mysql_real_escape_string($msg)."')";

ところで、mysql_ 関数は非推奨です。なぜ PDO を使用しないのでしょうか?

于 2013-09-29T17:44:59.447 に答える
0

PHP で htmlentities 関数を使用して、すべてのタグを同等の HTML にエンコードできます。次に、結果の文字列を varchar ベースまたはテキスト ベースの列に挿入できます。

ここで方法を見つけることができます: http://ca3.php.net/manual/en/function.htmlentities.php

于 2013-09-29T17:46:51.883 に答える