Поиск таблицы базы данных с одиночными кавычками не работает

Проблема:

Идти к: http://www.englishact.com/Quotations/allquotgr.php

Если вы ищете Bl?ue, он покажет некоторые результаты.

Тем не менее, если вы ищете Bl?ue 's, не будет никаких результатов.

Но моя таблица MySQL содержит данные, в том числе '[Цитата]

Та же проблема происходит для всех версий quotation pages

Пример:

http://www.englishact.com/Quotations/allquot.php]2

[http://www.englishact.com/Quotations/allquotfr.php

Мой код:

if(isset($_GET['quotation'])){
$puty = $_GET['quotation'];
$put = urldecode($_GET['quotation']);
$sql = "SELECT * FROM `gr` WHERE `quot` LIKE '%".$put."%' OR `author` LIKE '%".$put."%'";
}
$result = mysqli_query($con,$sql);
while ($row = mysqli_fetch_array($result)) {
$quot[] = $row;
}

Я думаю, что проблема внутри кода выше.

-1

Решение

Это то, что все говорят вам делать:

if(isset($_GET['quotation'])){
$con=new mysqli("localhost","username","password","database");  // use your details obviously
if($stmt=$con->prepare("SELECT * FROM `gr` WHERE `quot` LIKE ? OR `author` LIKE ?")){
$p1=$p2="%{$_GET['quotation']}%";  // wrap the values with % for LIKE
$stmt->bind_param("ss",$p1,$p2);
$stmt->execute();
$result=$stmt->get_result();
while($row=$result->fetch_array(MYSQLI_ASSOC)){
$quot[] = $row;
}
}else{
echo mysqli_error($con);
}
}

Это защитит ваш запрос и решит вашу проблему.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]