Ссылка с &: амперсанд не вставляется в базу данных

Как вставить в базу данных ссылку со специальными символами html, такими как символ & (амперсанд)? Когда я его вставил, вывод обрезается..

Например: эта ссылка

https://www.youtube.com/watch?v=TCnxD9V9lGE&index=24&list=PLNVssP8zTtVk5asCmP703gEvR_lG-Ur-S

и вывод после того, как я его вставил:

https://www.youtube.com/watch?v=TCnxD9V9lGE

Символ & (амперсанд) и все остальное вырезано.

Это мой код:

$data = "LINK with & (ampersand)";

$data = mysqli_real_escape_string($connect_db, $data);

person user3012794    schedule 22.03.2016    source источник
comment
Код, который вы процитировали, ничего не вставляет в базу данных.   -  person Mark Baker    schedule 22.03.2016
comment
Это не проблема с вставкой. Скорее всего, она усекается там, где вы отображаете эту информацию.   -  person Your Common Sense    schedule 22.03.2016


Ответы (1)


Вам следует рассмотреть возможность использования подготовленных запросов. Это предотвратит большинство проблем со вставкой специальных символов в базы данных. PDO - лучший способ (imo) использовать подготовленные операторы. Примерно так ваш код будет выглядеть с использованием PDO:

$connect_db = new PDO('mysql:dbname=yourdb;host=127.0.0.1;charset=utf8', 'root', '');
$url = //your url with ampersands
$insertquery = $connect_db->prepare("INSERT INTO table1 (urlstring, ...) VALUES (:url,...)");
$insertquery->bindParam(':url',$url);
$insertquery->execute();

Знакомство с подготовленными запросами также поможет предотвратить внедрение SQL. Когда вы немного почувствуете уверенность в PHP, взгляните на это руководство по PDO: https://phpdelusions.net/pdo

person SGR    schedule 22.03.2016