我使用preg_split从tweet message-id中删除标记信息,这是来自Twitter的原始输出
标签:search.twitter.com,2005:7551711354822656
我应用preg_split来摆脱'tag:search.twitter.com',如
$arr = preg_split("/,/", "strip_tags(mysql_real_escape_string($status->id))");
$msg_ID = $arr[1];
&安培;将$ msg_ID [1]插入表中。现在我将其应用于其twitter输出为
的消息内容 #DIYse_D DELIVERAB: twitter messages 1, 9th OCT 2010
我应用preg_split从中删除'twitter messages 1',如
$arr2 = preg_split("/,/", "strip_tags(mysql_real_escape_string($status->content))");
$msg = $arr[1];
&安培;将$ msg [1]插入表中但会引发sql语法错误。好的,这里有一件事是在$ status-> id输出中,twitter在id的开头添加了标签,而在这里它在原始消息内容中添加了“twitter messages 1”。
这是SQL插入查询
INSERT INTO msg2(id,msg,msg_id,depth,name) VALUES ('','$msg','$msg_ID','0','$name')
答案 0 :(得分:2)
$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
我指出的四个双引号将" code"到文字文本字符串。您并未尝试拆分strip_tags函数调用的结果,而是尝试拆分表示" strip_tags(etc ...)"的字符串。删除双引号,以便PHP看到它是函数调用,而不是字符串。
由于该字面字符串中没有逗号,因此不会有任何$arr2[1]
值,因此您尝试在数据库中插入空格(或空)
同样,将您的功能序列更改为:
mysql_real_escape_string(strip_tags(etc...))
数据库插入的转义应该是插入之前的最后一件事。 strip_tags可能会改变逃逸的顺序并产生“坏”的错误。字符串,让你接受SQL注入攻击。