2012-08-16 73 views
0

下面的函数将用于将Facebook访问令牌输入到数据库中。用户标识已经有一个关联的记录,所以“acc_tok”字段只需要更新。mysql_query成功但获取mysql_fetch_array()期望参数1成为资源

出于某种原因,即使$ _result值保持为“1”,功能相呼应,将发出警告时出现,说:“成功!”:

“警告:mysql_fetch_array()预计参数1是资源,布尔给定“。有谁知道为什么看起来查询是成功的,但只返回一个布尔值,而不是mysql_fetch_array可以使用的东西?感谢您阅读

function setUserAccessToken($_uid, $_accTok){ 
     $sql = "UPDATE `user_core` SET `acc_tok`=$_accTok WHERE `id` = $_uid"; 
     $_result = mysql_query($sql) or die($sql."<br/><br/>".mysql_error()); 
     echo $_result; 
     if ($_result) { 
     echo ("Successful!"); 
      $_resultArray = mysql_fetch_array($_result); 
      print_r($_resultArray); 
     } else { 
      echo ("Failed!"); 
     } 
} 
+1

它可能无助于回答你的问题,但你应该停止使用'mysql_ *'函数。他们正在被弃用。请使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果你不确定使用哪一个,[阅读本文](http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/)。 – Matt 2012-08-16 16:54:32

+0

'var_dump($ _ result)'给你什么? – Matt 2012-08-16 16:55:08

回答

6

你正在做的UPDATE查询,没有行从结果获取,从mysql_query()因此一个布尔值,而不是资源。

the manual

对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等, 的mysql_query()返回TRUE或FALSE的成功错误。

+0

哦,我的天啊......那真是令人尴尬.. – user1058210 2012-08-16 17:13:29

相关问题