2014-03-19 121 views
0

好的,所以這個問題真的讓我心煩......我有一個MYSQL查詢,我想使我的PHP程序可以訪問和更新用戶的緯度和長度座標的數據庫和即時通訊問題...Php MYSQL查詢問題

這是不工作代碼:

$currUsername = strtolower($_SESSION['username']); 
$sql= "UPDATE users SET pos_Lat=$latitude, pos_Long=$longitude WHERE username=$currUsername"; 
$result = mysql_query($sql, $link); 

工作代碼

$currUsername = "email_that_is_returned" 
$sql= "UPDATE users SET pos_Lat=$latitude, pos_Long=$longitude WHERE username=$currUsername"; 
$result = mysql_query($sql, $link); 

這是因爲會話返回的數據是不能夠被放置在查詢內部?

+2

用戶名= $ currUsername應該啓動會議be username ='$ currUsername',因爲它是一個字符串。並確保session_start()位於頁面頂部。 –

+3

可能您的會話變量不會返回任何數據。檢查打印會話變量 –

回答

0

您可以檢查它返回的數據類型。

print $_SESSION['username']

如果$_SESSION['username']使用空格返回數據,還有機會打破SQL查詢。確保SQL查詢不失敗,即使$_SESSION['username']包含空格和單引號等。

1

檢查會話是否已啓動。如果不啓動,然後將下面的代碼添加到您的網頁,然後檢查其工作或不..我的事你會不返回任何值..所以通過使用代碼session_start();

session_start(); 
$currUsername = strtolower($_SESSION['username']); 
$sql= "UPDATE users SET pos_Lat=$latitude, pos_Long=$longitude WHERE username=$currUsername"; 
$result = mysql_query($sql, $link); 
+0

這是瘋狂的一部分!會話開始,當我查看$ _SESSION ['username']中返回的內容時,它就是我想要查看的電子郵件。只要我在我的sql查詢中使用它,它不想工作。我查看了是否有空格,並且我得出結論說沒有,數據庫中的值沒有空格,也沒有在php代碼中添加任何空格。 – Willy