2012-03-05 22 views
0

FacebookやTwitterの会員のスクリプトエラー: (データベースにデータを記録しない)会員(エラー:MySQLの)

ログイン=> FB/TWのDATABASE =>CONNECT OK! => BACK => MY DATABASE => ERROR

SQL私のウェブサイトTO:

CREATE TABLE users 
(
id INT PRIMARY KEY AUTO_INCREMENT, 
email VARCHAR(70), 
oauth_uid VARCHAR(200), 
oauth_provider VARCHAR(200), 
username VARCHAR(100), 
twitter_oauth_token VARCHAR(200), 
twitter_oauth_token_secret VARCHAR(200) 
); 

loginFacebook.php:

<?php 
require 'dbconfig.php'; 
class User { 

function checkUser($uid, $oauth_provider, $username,$email,$twitter_otoken,$twitter_otoken_secret) 
{ 
    $query = mysql_query("SELECT * FROM `users` WHERE oauth_uid = '$uid' and oauth_provider = '$oauth_provider'") or die(mysql_error()); 
    $result = mysql_fetch_array($query); 
    if (!empty($result)) { 
     # User is already present 
    } else { 
     #user not present. Insert a new Record 
     $query = mysql_query("INSERT INTO `users` (oauth_provider, oauth_uid, username,email,twitter_oauth_token,twitter_oauth_token_secret) VALUES ('$oauth_provider', $uid, '$username','$email')") or die(mysql_error()); 
     $query = mysql_query("SELECT * FROM `users` WHERE oauth_uid = '$uid' and oauth_provider = '$oauth_provider'"); 
     $result = mysql_fetch_array($query); 
     return $result; 
    } 
    return $result; 
} 
} ?> 

スクリーン:エラー

Column count doesn't match value count at row 1

何が問題なのですか?

よろしく、何を持っていることは、あなたがしかし、クエリであなただけの4項目('$oauth_provider', $uid, '$username','$email')のデータを提供している、6値を挿入しようとしている見ての通り、それはエラーを示している

INSERT INTO `users` (oauth_provider, oauth_uid, username, email, twitter_oauth_token, twitter_oauth_token_secret) 
VALUES ('$oauth_provider', $uid, '$username','$email')") 

ある

答えて

1

以下は、ご使用の要件に応じて使用できる2つの方法です。

オプション1

INSERT INTO `users` (oauth_provider, oauth_uid, username, email, twitter_oauth_token, twitter_oauth_token_secret) 
VALUES ('$oauth_provider', $uid, '$username','$email',NULL, NULL)") 

OR オプション読みやすくするために複数の行になるようにクエリを再フォーマット2

INSERT INTO `users` (oauth_provider, oauth_uid, username, email) 
VALUES ('$oauth_provider', $uid, '$username','$email')") 
+0

今すぐご利用ください!ファヒム、助けてくれてありがとう! – Editor

+2

問題ありません。常に喜んで支援する! –

2

$query = mysql_query(
    "INSERT INTO `users` 
    (oauth_provider, oauth_uid, username, email, twitter_oauth_token, twitter_oauth_token_secret) 
    VALUES 
     ('$oauth_provider', $uid, '$username','$email') 
    " 
) or die(mysql_error()); 

あなたは6列を指定していますあなたのINSERTステートメントですが、これらの列には4つの実際の値しか指定しません。クエリの最後の2つのtwitter_oauth_*列を削除するか、これらの列の値を指定します。

+0

ありがとうございます@ richsage! – Editor