2010-08-27 39 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_前綴用於會話點變量?