2010-08-27 72 views
1

有人可以帮助我处理脚本吗?它应该读取用户会话的member_id,找到相应的行并将其回显出来。但是当它运行时,它什么都不输出。PHP/MySQL - 从数据库中获得一行

<?php 

//Start session 
session_start(); 

//Make sure user is logged in 
require_once('auth.php'); 

//Include database connection details 
require_once('config.php'); 

//Connect to DB 
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
if(!$link) { 
die('Failed to connect to server: ' . mysql_error()); 
} 

//Select database 
$db = mysql_select_db(DB_DATABASE); 
if(!$db) { 
die("Unable to select database"); 
} 

//Create Querys 
$query = "SELECT * FROM stats WHERE member_id='" . $_SESSION['SESS_MEMBER_ID'] . "' "; 
$result = mysql_query($query); 

//Gather the whole row into an array 
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    echo $row;  
} 

?> 

回答

3

降一echo mysql_num_rows($result);后,立即请求mysql_query线,看看你是否已经从查询返回任何结果 - 我怀疑你会发现你没有,在这种情况下,SESS_MEMBER_ID是不存在的统计表。

+0

奥普斯,我想通了。愚蠢的错误。 – user377419 2010-08-27 23:21:10

1
  1. 使用PDO而不是mysql_*()功能
  2. $row是如此呼应这是毫无意义的数组:PHP arraysvar_dump()
  3. 确保SQL查询返回任何东西。也许$_SESSION['SESS_MEMBER_ID']有一些意想不到的价值?
  4. 执行基本调试时出现错误 - 全部转储:

    var_dump($query); 
    var_dump($result); 
    var_dump($_SESSION); 
    

    甚至更​​好:用一个真正的调试。

  5. 确保显示每一个可能的错误 - PHP是接受错误的色调和仍然可以工作一个非常奇怪的语言:

    error_reporting(-1); 
    ini_set('display_errors', 'on'); 
    

BTW:什么是SESS_前缀用于会话点变量?