Php 如何将Facebook中的名字写入MySQL?
我正在尝试运行以下代码:Php 如何将Facebook中的名字写入MySQL?,php,mysql,facebook,api,Php,Mysql,Facebook,Api,我正在尝试运行以下代码: mysql_query("INSERT INTO friend_data (UID, Name) VALUES ($friendUID, $friendName)"); 其中,$friendUID是从Facebook抓取的用户ID,$friendName是从Facebook抓取的朋友的姓名。出于某种原因,$friendName不会写入MySQL$friendUID写得很好,普通文本也写得很好。有人知道为什么,或者如何让它工作吗?相关代码如下: $uid = $face
mysql_query("INSERT INTO friend_data (UID, Name) VALUES ($friendUID, $friendName)");
其中,$friendUID是从Facebook抓取的用户ID,$friendName是从Facebook抓取的朋友的姓名。出于某种原因,$friendName不会写入MySQL$friendUID写得很好,普通文本也写得很好。有人知道为什么,或者如何让它工作吗?相关代码如下:
$uid = $facebook->getUser();
$friends = $facebook->api('/me/friends');
$friendUID = $value["id"];
$friendName = $value["name"];
echo $friendName;
mysql_query("INSERT INTO friend_data (UID, Name) VALUES ($friendUID, $friendName)");
谢谢大家! 首先,您应该考虑使用MySQLi或PDO,因为PHP-MySQL扩展非常旧(现在在PHP5.5中不推荐使用)
问题是您试图将原始文本插入SQL查询,这除了存在注入风险外,还会导致无效语句: 预期结果:
INSERT INTO friend_data (UID, Name) VALUES (1234, "Friend Name");
实际结果:
INSERT INTO friend_data (UID, Name) VALUES (1234, Friend Name);
您需要将名称值封装在引号中,并在插入值之前对其进行转义:
$uid = $facebook->getUser();
$friends = $facebook->api('/me/friends');
$friendUID = mysql_real_escape_string($value["id"]);
$friendName = mysql_real_escape_string($value["name"]);
mysql_query("INSERT INTO friend_data (UID, Name) VALUES ($friendUID, \"$friendName\")");
你好,这里有SQL注入漏洞,请考虑切换到使用MySQLI或PDO来访问数据库(<代码> MySQL<函数是无效的,使用它们是不鼓励的)。再见,谢谢-我来看看。不过我只是想让它工作起来…谢谢!说到PDO和MySQLi——最终我需要在Java小程序中编写语句。我是否也需要修改它们以使其不可注入?@FinalJon是的,SQL注入是一个无论使用何种语言都需要处理的问题。