【发布时间】:2012-09-29 11:51:39
【问题描述】:
我正在使用 Facebook Javascript SDK 登录并获取用户信息。当我将此数据保存到 mysql 数据库时,它只保存 1-2 条记录。虽然我每次都在获取用户记录。
if($user){
print_r($userInfo);
$userid = $userInfo[id];
$username = $userInfo[name];
$birthday = $userInfo[birthday];
$birthday = date("Y-m-d", strtotime($birthday));
$userlocation = $userInfo[location][name];
$gender = $userInfo[gender];
$useremail = $userInfo[email];
$sql = "INSERT INTO users (userid, username, useremail, birthday, location, gender) VALUES ('$userid', '$username', '$useremail', '$birthday', '$userlocation', '$gender')";
if($result = mysql_query($sql)) {
echo "success";
}
}
用户的表定义是:
1 userid int(20) No None Change Drop Browse distinct values Primary Unique Index Spatial Fulltext
2 username varchar(30) latin1_swedish_ci No None Change Drop Browse distinct values Primary Unique Index Spatial Fulltext
3 useremail varchar(50) latin1_swedish_ci No None Change Drop Browse distinct values Primary Unique Index Spatial Fulltext
4 birthday date No None Change Drop Browse distinct values Primary Unique Index Spatial Fulltext
5 location varchar(30) latin1_swedish_ci No None Change Drop Browse distinct values Primary Unique Index Spatial Fulltext
6 gender varchar(10) latin1_swedish_ci No None Change Drop Browse distinct values Primary Unique Index Spatial Fulltext
使用 PDO 时:
if($user){
$host = "internal-db.s130813.gridserver.com";
$db = "db130813_fbmooz";
$user = "db130813_adminu";
$pass = "ansari786";
$conn = new PDO("mysql:host=$host;dbname=$db",$user,$pass);
$uid = $userInfo[id];
$uname = $userInfo[name];
$sql = "INSERT INTO users (userid,username) VALUES (:uid,:uname)";
$q = $conn->prepare($sql);
$q->execute(array(':uid'=>$uid, ':uname'=>$uname));
还是无法保存
【问题讨论】:
-
您希望获得多少条记录?
-
取决于用户,可能多达数百个
-
所以这段代码被重复调用了?我想我错过了应该插入这么多记录的地方。
-
每次新用户通过 FB id 登录时都会执行此代码,稍后我会在数据库中检查 fb id,但目前我预计至少有 20-25 条记录。跨度>
-
您是否在 'print_r' 行看到与预期一样多的值/命中,但未调用 INSERT?或者这段代码没有被调用?我想我不知道这是更大的代码问题还是 mysql 问题。