2016-04-19 10 views
1

を使用してMySQLでHTMLファイルを挿入するは、私はこのようなヒアドキュメント変数を持つPHPクエリ

query="INSERT INTO requests (ID,title) VALUES ('$ID','$status')"; 

しかし、私はそれをすることはできません。それを挿入するにはどうすればよいですか?

+0

SQLエスケープ?エラーメッセージが表示されますか?結果はどのくらい正確ですか? HTML文脈で表示されない改行についてですか? – mario

+0

[PHPを使ってDBにHTMLコードを挿入するにはどうすればいいですか](http://stackoverflow.com/questions/24631088/how-to-insert-html-code-into-db-using-php) – geeksal

+0

あなたのテキストのアポストロフィはデータベースを混乱させます。代わりにprepared statementを使用してください。 – miken32

答えて

0

(にaddslashesを使用してみてください)

$status = addslashes($status); 
query="INSERT INTO requests (ID,title) VALUES ('$ID','$status')"; 
1

あなたは2通りの方法でそれを行うことができます。このようなmysqli_real_escape_string()を使用

$mydb = new mysqli("localhost","root","FedAnd11"); 

$status=<<<EOT 
<p>hello world</p> 
<p>I'm <strong>really</strong>OK!</p> 
<p></p> 
EOT; 

$query="INSERT INTO requests (ID,title) VALUES ('$ID','".$mydb->real_escape_string($status)."')"; 

たり、DBに接続していない場合まだ、

$status=<<<EOT 
<p>hello world</p> 
<p>I'm <strong>really</strong>OK!</p> 
<p></p> 
EOT; 

$status = str_replace(array('\\', "\0", "\n", "\r", "'", '"', "\x1a"), array('\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z'), $status); 

$query="INSERT INTO requests (ID,title) VALUES ('$ID','$status')"; 

あなたが問題を理解していれば。あなたが行うことができます

もう一つは、あなたが本当にこのように、あるとして$ステータスを入れたい場合は、MySQLの準備文を使用することです:

$status=<<<EOT 
<p>hello world</p> 
<p>I'm <strong>really</strong>OK!</p> 
<p></p> 
EOT; 

$stmt = $dbConnection->prepare('INSERT INTO requests (ID,title) VALUES (?,?)'); 
$stmt->bind_param('is', $ID,$status); 

$stmt->execute(); 

私は$ IDは整数であるはず。

+0

私は準備されたステートメントを先頭に移動することをお勧めします。質問に答えるとき、それを最良の方法にプッシュすることは常に良い考えです。彼らが使用しているデータベースAPIがわからないことに注意してください.PDOや古くからのmysql APIかもしれません。 – miken32

関連する問題