2013-10-25 25 views
0

我有一個小問題如下所示的MySQL:PHP/where子句使用的代碼的PHP/MySQL Where子句返回一個空值

<?php 
$con=mysqli_connect("host","username","password","database"); 
//Note that I have replaced my parametres just for this question 
// Check connection 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
//Request Session ID 
$id = $_SESSION['uid']; 
echo "Session ID = ' . $id; 
echo "<br>"; 
//Request Username 
echo "Username = " . mysqli_query($con,"SELECT username FROM 'users' WHERE id = 4"); 

?> 

的這個輸出是(在我的單獨的登錄後登錄頁面):

會話ID = 4

用戶名=

所以很明顯,存在的問題與where子句。 據我所知,連接參數沒有問題。 當我在PHPmyadmin中運行MySQL命令時,我得到了'Admin'的預期結果。 我的輸入被正確命名。

我不知道是什麼原因造成的,我在論壇上找不到任何類似的問題。任何幫助,將不勝感激。謝謝。

UPDATE

我已經適應了下面的答案,使這個代碼:

<?php 
// Only run this script if the sendRequest is from my flash application 
if ($_POST['sendRequest'] == "parse") { 
//conection: 
$con=mysqli_connect("mysqlXX.000webhost.com","a4935911_***","***","a4935911_***"); 
$id = $_SESSION['uid']; 
$getuname = mysqli_fetch_assoc(mysqli_query($con, "SELECT username FROM users WHERE id = $id")); 
$uname = $getuname ['username']; 

// Print 1 var to flash 
print "var1=The username of this user is $uname."; 

} 

?> 

這是我的Flash應用程序觸發。如果我不使用會話ID變量,並且只使用例如4作爲我的身份證號碼值,但我需要使用此會話ID。任何想法是什麼與此?

回答

0

你應該使用下面的代碼: -

//conection: 
$con=mysqli_connect("host","username","password","database"); 

if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$getuname = mysqli_fetch_assoc(mysqli_query($con, "SELECT username FROM users WHERE id = 4")); 
$username = $getuname ['username']; 

//Request Username 
echo "Username = " .$username ; 
+0

是啊!而已。我不知道mysqli_query實際上並沒有返回我需要的值,因爲你和@MarcelKorpel指出。謝謝你的答案。 – user2867893

+0

如我的更新中所示,我實際上可以使用一些進一步的幫助。 – user2867893

+0

當你回聲會議uid時會得到什麼? –

2

你不應該用普通的單引號括起表名(');使用反引號(或者,如果您不使用保留字,則不使用)。所以:

SELECT username FROM `users` WHERE id = 4 

SELECT username FROM users WHERE id = 4 

此外,mysqli_query並不在現場返回的結果,而是一個mysqli_result對象。您必須使用獲取命令來獲取結果,例如

$result = mysqli_query($con,"SELECT username FROM 'users' WHERE id = 4"); 
$row = mysqli_fetch_assoc($result); 
echo 'Username = ' . $row['username']; 
+0

那所做的事。我相信我現在正在得到一個輸出,但有一個問題如下: 可捕捉的致命錯誤:類mysqli_result的對象無法轉換爲/home/a4935911/public_html/usersOnline.php上的字符串116行 – user2867893

+0

@ user2867893我沒有完成回答,查看更新後的答案。 –

+0

好的,我明白了。這是我最初製作這個腳本時所嘗試的,但我遇到了問題,所以我改變了這一點。 我不是很擅長PHP,所以我不知道這是什麼打算: 警告:mysqli_query()期望參數1是mysqli,在/home/a4935911/public_html/usersOnline.php中給出的資源線115 警告:mysqli_fetch_assoc()預計參數1被mysqli_result,在/home/a4935911/public_html/usersOnline.php空給定線116上 – user2867893