0

我正在使用此代码从 Json 获取数据并将它们插入 mysql。但是,它不会在数据库中插入任何记录。

    <?php  
    include("db.php");  
    $currsiteurl = 'http://graph.facebook.com/1597233119';  
     $graph = json_decode(file_get_contents($currsiteurl));  
     $id = $graph->id;  
     echo "id        : ".$id;   
     echo "<br>";
     $username = $graph->username;  
      echo "username : ".$username;  
      echo "<br>";
     $gender = $graph->gender;  
      echo "gender   : ".$gender;  
      echo "<br>";
       $locale = $graph->locale;  
         echo "locale   : ".$locale;  


        mysql_query("INSERT INTO users_data (id, username, gender, locale) 
         VALUES ('.$id', '.$username', '.$gender', '.$locale')");    
          ?>

谁能告诉我错误在哪里?

4

2 回答 2

0
mysql_query("INSERT INTO users_data (id, username, gender, locale) 
     VALUES ('.$id', '.$username', '.$gender', '.$locale')");  

您正在创建一个字符串(带有嵌入式变量),所以点 '.' 不是必需的。

如果 id 或 gender 中的任何一个是数字字段,那么这很可能是阻止插入数据的原因(带有点)。(如果它们是数字,它们也不需要周围的撇号。)

于 2013-09-01T01:15:01.930 回答
0

除了 Andy G 所说的:

  1. 您应该使用准备好的语句来确保您收到的数据被正确转义以避免 sql 注入攻击: http: //php.net/manual/en/pdo.prepared-statements.php

  2. 为了帮助调试查询,echo mysql_error()请在 mysql_query 语句之后添加以打印错误(或使用此处警报中提到的新方法之一:http: //us1.php.net/manual/en/function.mysql-error.php )

于 2013-09-01T01:52:52.160 回答