Как получить все данные из MySQL с апострофом в нем, используя PHP - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь извлечь данные из записи MySQL с апострофией.Он возвращается с обратной косой чертой и отсутствующей строкой.Поверь мне, я покопался в интернете и пока ничего не работает.Я, должно быть, слишком устал от этого, и это прямо передо мной.См. Код ниже ...

$sql = "SELECT * FROM ".$tbl."  WHERE FIELD_NO = ".$order_no." ORDER BY LINE_NO ASC";
    $rs_result = $conn->query($sql); 

while($row = $rs_result->fetch_assoc()) {

$addl_info = mysqli_real_escape_string($conn, $row['ADDL_INFO']); //tried this

echo "<td class='col32'><input name='addl_info[]' class='addl_info' type='text' value='".$addl_info."'></td>";

MySQL хранит данные "Band of 20's" и выводит их как "Band of 20 \" с пропуском 's'.Я перепробовал все, что я могу себе представить, и все еще не могу вернуть всю строку данных с помощью PHPЯ использовал mysqli_real_escape_string (), чтобы получить данные с апострофом, но теперь я не могу вернуть данные с апострофом и текстом, который следует за ним.

Я планирую использовать этот конкретный проект для перехода к PDO, но мне нужно исправить, пока я не смогу это сделать.Мне потребуется некоторое время, чтобы выучить и выполнить PDO.

Ответы [ 3 ]

3 голосов
/ 15 марта 2019

Вы заключаете свое значение в одинарные кавычки, это не сработает:

value='Band of 20's'

Видите проблему?Как браузер узнает, какая из них является начальной, а какая - конечной?

Вам необходимо преобразовать цитату в ее HTML-сущность &#039;:

echo "stuff value='".htmlentities($row['ADDL_INFO'], ENT_QUOTES)."' stuff";

Или использовать двойные кавычки(однако вы все равно должны конвертировать HTML-сущности):

echo "stuff value=\"{$row['ADDL_INFO']}\" stuff";
//or
echo 'stuff value="'.$row['ADDL_INFO'].'" stuff';
0 голосов
/ 15 марта 2019

Доступ к вам SQL из браузера, PHP мой администратор или аналогичный ... Когда вы видите свою таблицу и все другие вкладки перейти к SQL. Это как тестовая среда, где вы можете попробовать свой код. Есть несколько предустановок, таких как «Выбрать * из таблицы» и т. Д. Там вы можете увидеть, как апостроф написан в вашем SQL. Я думаю, что это поможет вам

0 голосов
/ 15 марта 2019

Запуск mysqli_real_escape_string() в строке, как вы делаете, экранирует определенные символы:

$addl_info = mysqli_real_escape_string($conn, $row['ADDL_INFO']);

Вам просто нужно получить возвращенное значение:

$addl_info = $row['ADDL_INFO'];

Кроме того, по соображениям безопасности (риск внедрения SQL-кода) убедитесь, что ваш запрос выполняется через подготовленный оператор. Вы можете найти информацию об этом здесь: http://php.net/manual/en/mysqli.quickstart.prepared-statements.php

...