私は少しajax質問結果システムをやっています。ユーザーがテキストエリアに何かを入力すると、結果が自動的に検索されて出力されます。文字列に文字列が含まれている場合に引用符を付ける前にバックスラッシュを追加する - PHP
問題は、ユーザーが ""または "'を含む質問を入力するたびに検索が失敗するという問題です。 ""文字列の中にバックスラッシュを追加する方法はありますか?それで無視されますか?
"または"を無視するフィルタはありますか?
データベースの質問には質問が含まれているので、引用符で検索する必要があります。
は、ここでは、コードです:
$q = $_POST['q'];
// for every " or ' in $q add \ before it
$results = array();
$result = array();
$count = 0;
$stmt = $dbh->prepare("SELECT result FROM quest WHERE quest LIKE '".$q."%'");
if($stmt->execute()){
$result = $stmt->fetchAll(PDO::FETCH_OBJ);
$count= $stmt->rowCount();
}
if($result != NULL){
foreach($result as $part){
foreach($part as $item){
$results[] = $item;
}
}
echo htmlentities($results[0], ENT_QUOTES, "UTF-8");
}
あなたは準備文を使用する必要があります。そのためです。 MySQLはそれについて不平を言っていますが、チャンスを与えているわけではありません;-) –
私はこれが重複した@Fred -ii-であることに同意しません。私はあなたの意図が最高だと知っていますが、誰かがSQLインジェクションとほぼ同じことを気付かずに(このように)この種の質問を探すでしょう:) –
*私は6分後に正しいとマークします - DawidZbiński5分前 "* - 重複は何ですか、熱帯雨林から猿を連れて来ますか?あなたが受け入れる答えから、これをhttp://php.net/manual/en/pdo.prepared-statements.phpと呼びますか?そしてdupeからhttp://stackoverflow.com/a/60496/。 –