2016-09-28 8 views
1

[私が使っているのphpMyAdmin]私は都市や地域の大記述されている長いテキストを挿入したいPHP | MySQLの - テキストを挿入することはできませんがアポストロフィ

が含まれています。 アポストロフィとカンマを含みますが、挿入するとカンマは問題ありませんが、アポストロフィは問題ありません。

たとえば、

"タウンジーはシャン州の全体のための行政首都です。それは私のウェブサイト上のテキストエリアにユーザー(タイプイン)からの入力意志山の頂上に腰掛け、それはまた、忙しい交易、 だと... "

。 したがって、私が見つけた他の例のように静的に定義することはできません。

現在1
//php $name=$_REQUEST["name"]; // //in insert query => '.$name.',

も以下のようにしようとしたが、働いていないことがあります。

'".$name."', 

いいアイデアをお願いします。あなたの助けが大いに評価されます。ありがとうございました!

答えて

2

引用符をバックスラッシュでエスケープします。 'sumit \' s 'のように。ここで

例関数は、mysqli_real_escape_stringを使用している:

<?php 
$con=mysqli_connect("localhost","my_user","my_password","my_db"); 

// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

// escape variables for security 
$firstname = mysqli_real_escape_string($con, $_POST['firstname']); 
$lastname = mysqli_real_escape_string($con, $_POST['lastname']); 
$age = mysqli_real_escape_string($con, $_POST['age']); 

$sql="INSERT INTO Persons (FirstName, LastName, Age) 
VALUES ('$firstname', '$lastname', '$age')"; 

if (!mysqli_query($con,$sql)) { 
    die('Error: ' . mysqli_error($con)); 
} 
echo "1 record added"; 

mysqli_close($con); 
?> 

参考:お使いの場合にはhttp://www.w3schools.com/php/func_mysqli_real_escape_string.asp

が、それはmysql_real_escape_string($name)

+0

OPが危険な**と**危険な** mysql_ *関数を使用していると仮定しないでください。*常に尋ねます* –

+0

あなたは間違っていません。しかし、ユーザーが間違いなくmysql拡張ではなくmysqlを使用していると推定しないでください。 @ RajdeepPaul –

+0

だから、私は言った*常に運転手OPが使用している*を尋ねる。 MySQLi? PDO?知るか。 –

1

あなたは特殊文字をエスケープしようとしたことがありすべきですか?以下は助けになるはずです:

$name=mysqli_real_escape_string($connection, $name); 

私はポスト()という関数を作成し、私は脱出し、安全な文字列を返し行うよりも、$_POST私の単純なコールpost('item_name');機能から何かを必要とするたびに...数多くの質問と回答があります。 Properly Escaping with MySQLI | query over prepared statements

+1

手続き的な方法では、[mysqli_real_escape_string() '](http://php.net/manual/en/mysqli.real -escape-string.php)関数は2つの引数を取ります。最初は接続ハンドラ、2番目はエスケープする文字列です。 –

+0

@RajdeepPaul良いキャッチ - 私は自分の答え+ upvotedを更新しました。ありがとう。 – salih0vicX

+0

[エスケープ文字列でもSQLインジェクションを防ぐことはできません](http://stackoverflow.com/questions/37218691/mysql-real-escape-string-solve-sql-injection-definitely)という言葉は有益です。 +1リンクbtw。 –

関連する問題