2014-10-08 75 views
0

我一直在閱讀很多不同的代碼片段,我很困惑爲什麼我的代碼底部的$ echo行[0]沒有返回任何內容。爲什麼不是PHP代碼呼應

$dbhost = 'localhost'; 

$uname = $_POST["uname"]; 

//***create connection object 
$connection = mysql_connect($dbhost, "bc572fsdf", "abcdfsds") or die(mysql_error()); 

$dbname = "bc57db"; 
mysql_select_db($dbname) or die(mysql_error()); 

//***select a random security question 

//*** need this to import session variables 
session_start(); 

echo ($_SESSION["ValidUser"] . "\n"); 

$rq  = array('q1', 'q2', 'q3'); 
$rand_key = array_rand($rq, 1); 
echo $rq[$rand_key]; 

$question = $rq[$rand_key]; 

$qtoanswer = mysql_query("select '$question' from users where uname = '$uname'"); 
if (!$qtoanswer) { 
    echo "Could not run query:" . mysql_error(); 
    exit; 
} 

echo $qtoanswer; 
$row = mysql_fetch_row($qtoanswer); 

echo $row[0]; 

?> 
+0

做的print_r($行);並查看它包含的內容 – 2014-10-08 11:52:37

+1

您應該停止使用mysql_ *函數。他們折舊。相反,使用mysqli_ *函數。 :)。嘗試var_dump($ row)並查看哪些輸出? – 2014-10-08 11:52:44

+0

一個簡單的調試會話將查明有問題的部分。 – 2014-10-08 11:52:46

回答

1

的故障是在這一行:

$qtoanswer = mysql_query("select '$question' from users where uname = '$uname'"); 

您應該使用的列名墳墓標記,如:

$qtoanswer = mysql_query("select `$question` from users where uname = '$uname'"); 
           ^  ^

此外,你應該用的MySQLi/PDO,所以你可以準備這個,或者至少在,轉義$uname

+1

如果這是唯一的問題,他會看到的東西..「不會返回任何東西」 - 不是我*信任*一般OP ... – 2014-10-08 11:59:04

+0

@KarolyHorvath最有可能的OP有錯誤消息,所以'$行[ 0]'返回了一個警告,(索引不存在或某物)。 – 2014-10-08 12:04:47

0

因爲你不能回顯陣列....嘗試的var_dump或print_r的,或者使用一個循環:

foreach($row[] as $result) { 
    echo $row[], '<br>'; 
}