1

所以我试图将来自 facebook 的用户喜欢存储在数据库中

$likes_json=json_encode($user->likes->data);
echo($likes_json);
$query = "INSERT INTO users VALUES (' ','".$likes_json."', NOW())";
$mysqli->query($query);

"echo" 打印出预期的字符串(长度为 56000 个字符)

[{"name":"The Next Web","category":"Website","id":"106976563522"....

但是没有任何东西存储在数据库中。当我改变$likes_json='some other string';它工作正常(它被插入到数据库中)

喜欢的列的类型是“ mediumtext

4

2 回答 2

1

您需要使用 mysql_real_escape_string 转义 $likes_json

您的查询最终看起来像这样

INSERT INTO users VALUES (' ','[{"name":"The Next Web","category":"Website","id":"106976563522"}]', NOW())

看看为什么那行不通?如果数据包含一个 ' 怎么办?

于 2012-11-13T07:14:22.150 回答
1

错误可以转义,但唯一确定的方法是打印错误:

$mysqli->query($query) or die("Error: ":$mysqli->error);

逃脱:

$likes_json=json_encode($user->likes->data);
$query = "INSERT INTO users VALUES (' ','%s', NOW())";
$query = sprintf($query,$mysqli->real_escape_string($likes_json);
于 2012-11-13T07:16:25.340 回答