Я использовал preg_split, чтобы удалить информацию о теге из твитового идентификатора сообщения, например, это оригинальный вывод из Twitter
тег: search.twitter.com, 2005: 7551711354822656
Я применяю preg_split, чтобы избавиться от тега: search.twitter.com, например
$arr = preg_split("/,/", "strip_tags(mysql_real_escape_string($status->id))");
$msg_ID = $arr[1];
& вставьте $msg_ID [1] в таблицу. Теперь я применяю то же самое к сообщению-содержимому, чей твиттер-выход
#DIYse_D DELIVERAB: twitter messages 1, 9th OCT 2010
Я применяю preg_split, чтобы избавиться от 'твиттер-сообщений 1' от него, например
$arr2 = preg_split("/,/", "strip_tags(mysql_real_escape_string($status->content))");
$msg = $arr[1];
& вставьте $msg [1] в таблицу, но он вызывает синтаксическую ошибку sql. ОК, одна вещь здесь заключается в том, что в $status- > id output, твиттер добавил тег в начале id, а здесь он добавил "сообщения Twitter 1" внутри исходного содержимого сообщения.
Вот запрос SQL Insert
INSERT INTO msg2(id,msg,msg_id,depth,name) VALUES ('','$msg','$msg_ID','0','$name')
$arr = preg_split("/,/", "strip_tags(mysql_real_escape_string($status->id))");
^--here ^--here
$arr2 = preg_split("/,/", "strip_tags(mysql_real_escape_string($status->content))");
^---here ^---here
Четыре двойных кавычки, которые я указал, превращают эти биты "кода" в буквальные текстовые строки. Вы не пытаетесь разделить результаты вызова функции strip_tags, вы пытаетесь разбить строку, которая говорит "strip_tags (etc...)". Удалите двойные кавычки, чтобы PHP увидел, что это вызов функции, а не строка.
Поскольку в этой литеральной строке нет запятых, не будет никакого значения $arr2[1]
, поэтому вы пытаетесь вставить пустую (или нуль) в базу данных.
Также измените свою функциональную последовательность на:
mysql_real_escape_string(strip_tags(etc...))
Сброс для вставки базы данных должен быть последним, что вы делаете перед вставкой. Возможно, strip_tags может изменить порядок экранов и создать "плохую" строку, оставив вас открытыми для SQL-инъекций.