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

エラーは回避される可能性がありますが、確実に知る唯一の方法はエラーを出力することです。

$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 に答える
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 に答える