不会使用脚本和php添加到数据库

时间:2011-04-02 21:52:01

标签: php

我在脚本中有一些代码获取一些值并将它们发布到php(我已经知道工作)应该添加到数据库但不是吗?只是想知道什么是错的,我的猜测是它从来没有真正到我的php文件?任何想法?

FB.Event.subscribe('auth.login', function(response) 
{               
    FB.api('/me', function(response) {
        $.post("usersignup.php", { facebookid: response.id, email: response.email, firstname: response.first_name, lastname: response.last } );             
    });   

usersignup.php的相应部分看起来像这样

  mysql_select_db ($database);  
    $fbid = $_POST['facebookid'];
    $fn = $_POST['firstname'];
    $ln = $_POST['lastname'];
    $em = $_POST['email'];    
      $query = "INSERT INTO user";
      $query .= "(facebookid, firstname, lastname, email) VALUES ('$fbid','$fn','$ln','$em')";
      $results = mysql_query($query, $link);          
      $mediaid = mysql_insert_id();

3 个答案:

答案 0 :(得分:1)

好的,所以可能有一个php错误让我们添加一些错误处理...

修改你的PHP:

ini_set('display_errors', 1);

if(!mysql_select_db ($database))
{
   echo 'Could not connect';
   exit;
}
else
{
  $fbid = $_POST['facebookid'];
  $fn = $_POST['firstname'];
  $ln = $_POST['lastname'];
  $em = $_POST['email'];    
  $query = "INSERT INTO user";
  $query .= "(facebookid, firstname, lastname, email) VALUES ('$fbid','$fn','$ln','$em')";

  if(!$results = mysql_query($query, $link))
  {
     echo 'Query failed: '.mysql_error();
     exit;
  }

  $mediaid = mysql_insert_id();
  echo 'Success: '. $mediaid;
}

你的js应警告回应:

FB.Event.subscribe('auth.login', function(response) 
{               
  FB.api('/me', function(response) {
    $.post("usersignup.php", { 
        facebookid: response.id, 
        email: response.email, 
        firstname: response.first_name, 
        lastname: response.last 
      },
      function(rdata){ alert(rdata); }, 
      'text'
    );             
  });
});

同时密切注意你的JS错误控制台...如果你的JS有问题它会告诉你。


$.post$.ajax的快捷方式,因此它不支持您提供的完整配置哈希。如果您需要更多控制权,则签名为$.post(url, data, successCallback),然后使用$.ajax

答案 1 :(得分:0)

我猜你有一个SQL错误。将您的行更改为如下所示:

$results = mysql_query($query, $link) or die(mysql_error());

并查看是否正在生成错误。

我打赌你的一个值正在打破查询。您需要至少通过mysql_real_escape_string()运行所有内容。

$fn = mysql_real_escape_string($_POST['firstname']);

答案 2 :(得分:0)

您的PHP文件未创建与MySQL服务器的连接,并且未定义$database