2

重複の可能性:
3つ以上のレコードを保存できません

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));

まだ保存できませんでした

4

1 に答える 1

0

いくつかの考えが思い浮かびます:

  • PDO を使用してこれを書き直してください - 'mysql_query' fn は非推奨です
  • 準備済みステートメントと「mysql_real_escape_string」を使用して、値に不正な文字が含まれていないことを確認します
  • 戻り値を確認し、「mysql_error()」を使用して何か問題が発生したかどうかを確認します
于 2012-09-29T12:33:33.457 に答える