PHP错误。怎么解决?

时间:2013-05-30 06:09:19

标签: php facebook

  

警告:mysql_num_rows():提供的参数不是有效的MySQL   /home/a2121694/public_html/cbox/fb_lib/connect.php中的结果资源   在第12行

     

会话ID无效

任何人都知道热修复我的错误我一直在尝试这个但我无法解决它。缺乏知识huhu

<?php
require './fb_connect.php';
include('../config.php');
$fb = new fbConnect();
if(!$fb->output) {
header("Location:".$fb->getLoginUrl());
} else {




$userInfo = $fb->getUserInfo();
$_SESSION['ses_id'] = md5(microtime());
$user = mysql_query("SELECT * FROM `".DB_PREFIX."user_accounts` WHERE `fbid`='".$userInfo['id']."'");
$buid = $userInfo['id'];
if(mysql_num_rows($user)>0) {
$userdata = mysql_fetch_assoc($user);
if($userdata['last_request_time']<=(time()-10800)) {
mysql_query("INSERT INTO `".DB_PREFIX."chats` VALUES('','Hello ! Welcome back to ".GLOBAL_NAME.", <b> ".$userdata['fbname']." </b><img src=\'http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/6.gif\'> You\'re Back! :)<br/><a href=\'http://www.barkadafm.net/view.php?link=http://www.txtmyt.com\' target=\'_blank\'><img src=\'http://bfm.chatmode.info/images/txtmyt.png\' width=\'480px\' alt=\'Free Unlimited Text to All Networks @ TXTMYT.COM\'/></a>','164790013558517','normal','".time()."')");
}
mysql_query("UPDATE `".DB_PREFIX."user_accounts` SET
`gender` = '".$userInfo['gender']."',
`ses_id` = '".$_SESSION['ses_id']."',
`active` = '1',
`sign_time` = CURRENT_TIMESTAMP,
`last_request_time` = '".time()."',
`ip_address` = '".$_SERVER['REMOTE_ADDR']."'
WHERE `fbid`='".$userInfo['id']."'");



} else {
mysql_query("INSERT INTO `".DB_PREFIX."user_accounts` VALUES('',
'".$userInfo['id']."',
'".$userInfo['name']."',
'".$userInfo['gender']."',
'0',
'".$_SESSION['ses_id']."',
'1',
CURRENT_TIMESTAMP,
'".time()."',
'".$_SERVER['REMOTE_ADDR']."','0','0')");
mysql_query("INSERT INTO `".DB_PREFIX."chats` VALUES('','Lets all Welcome,<b> ".$userInfo['name']." </b>:) Welcome sa BarkadaFM! <img src=\'http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/6.gif\'><br/><a href=\'http://www.barkadafm.net/view.php?link=http://www.txtmyt.com\' target=\'_blank\'><img src=\'http://bfm.chatmode.info/images/txtmyt.png\' width=\'480px\' alt=\'Free Unlimited Text to All Networks @ TXTMYT.COM\'/></a>','164790013558517','normal','".time()."')");
}
if(isset($_SESSION['ses_id'])) {
$getUserInfo = mysql_query("SELECT * FROM `".DB_PREFIX."user_accounts` WHERE `ses_id`='".$_SESSION['ses_id']."'");
if(mysql_num_rows($getUserInfo)>0) {
while($data=mysql_fetch_assoc($getUserInfo)) {
$_SESSION['fbid'] = $data['fbid'];
$_SESSION['name'] = $data['fbname'];
$_SESSION['gender'] = $data['gender'];
$_SESSION['acctype'] = $data['acctype'];
}
} else {
die("Invalid Session ID");
}
?>
<script>
window.opener.location.href="../index.php";
self.close();
</script>
<?php
  }
 }
  ?>

2 个答案:

答案 0 :(得分:-1)

此查询是否正确?因为如果不是并返回错误,那么下一行将无效。

$getUserInfo = mysql_query("SELECT * FROM `".DB_PREFIX."user_accounts` WHERE `ses_id`='".$_SESSION['ses_id']."'");

在查询后尝试回显mysql_error()。

顺便说一下,你可能想看看mysqli。

答案 1 :(得分:-1)

而不是:

$user = mysql_query("SELECT * FROM `".DB_PREFIX."user_accounts` WHERE `fbid`='".$userInfo['id']."'");

DO

$sql = "SELECT * FROM `".DB_PREFIX."user_accounts` WHERE `fbid`='".$userInfo['id']."'";

$result = mysql_query($sql);
if (!$result) {
    $message  = '<b>Invalid query:</b><br>' . mysql_error() . '<br><br>';
    $message .= '<b>Whole query:</b><br>' . $sql . '<br><br>';
    die($message);
}

错误最有可能发生在呈现MySQL错误的SQL语句中,这将显示哪一个错误。