2012-06-07 38 views
-4

所以。我正在研究一個簡單的系統。我有以下代碼:有效的SQL查詢在PHP中失敗?

$sql = mysqli_connect($db_host, $db_user, $db_pass, $db_name); 
$aaa="SELECT UserName,activeuntil from sessions WHERE `sessionid`='$b' AND `sessiontype`=$a"; 
$sqc=mysqli_prepare($sql,$aaa); 
mysqli_execute($sqc); 
mysqli_bind_result($sqc,$un,$til); 
while(mysqli_fetch($sqc)){echo $un;if(strtotime($til)>time())$user=$un;} 
echo "Hi, $user"; 

,其中價值AAA產生在我的情況:

SELECT UserName,activeuntil from sessions WHERE `sessionid`='rc1xamoblbqxul78czfsvub62fudzc' AND `sessiontype`=0 

這是在phpMyAdmin完美運行的查詢。但是,整體代碼不會產生結果(應該有1行)。爲什麼?我想我錯過了一件很容易的事,但是什麼?

P.S:如果你只能說「請淨化你的輸入」,「這種編碼風格是可怕的」,不回答這個問題,因爲這些將是固定的。謝謝。

+1

解決您知道是試圖找出還有什麼可能不適合前錯誤的事情。 – eggyal

+0

這是更重要的,因爲需要消毒(以後不會公開)。 – axiomer

+1

我沒有在您的代碼中看到'$ a'或'$ b'定義。 –

回答

0

我忘了一個簡單的,非SQL相關的東西(include語句...)。無論如何感謝所有的答案。

0

我建議:

$link = mysqli_connect($db_host, $db_user, $db_pass, $db_name); 
$query ="SELECT UserName,activeuntil from sessions WHERE 'sessionid'='$b' AND 'sessiontype'=$a"; 
$query = mysqli_query($link, $query); 
while($row = mysqli_fetch_object($query)) 
{ 
echo "Hi ".$row->UserName; 
} 
0

當我在PHP我贊同我的SQL字符串,並在phpMyAdmin運行一個查詢問題。如果它執行得很好,那麼你的連接有錯誤。希望這可以幫助。

+0

正如我在一個問題中提到,它執行罰款。但是,mysqli_error會給出空白結果,因此連接中沒有錯誤。 – axiomer