我想從我的用戶表中收到一個Id。 我:MySql語句返回不正確的結果
$retrieve_id = "SELECT userid FROM tb_users WHERE username = '$username'";
$user_id = intval(mysql_query($retrieve_id));
語句應該返回1,因爲這是在表中的值。但是,它返回6,這是列名的長度(userid
)。當我查詢其他表時,也會發生這種情況。
如何從表格中檢索值?
我想從我的用戶表中收到一個Id。 我:MySql語句返回不正確的結果
$retrieve_id = "SELECT userid FROM tb_users WHERE username = '$username'";
$user_id = intval(mysql_query($retrieve_id));
語句應該返回1,因爲這是在表中的值。但是,它返回6,這是列名的長度(userid
)。當我查詢其他表時,也會發生這種情況。
如何從表格中檢索值?
您需要取查詢的實際結果,使用mysql_result
或mysql_fetch_*
。
$result = mysql_query("SELECT userid FROM tb_users WHERE username = '$username'");
if (!$result) {
die('Could not query:' . mysql_error());
}
$user_id = mysql_result($result, 0); // outputs first row
注意所有mysql_
功能已被取消,你應該使用mysqli_
或PDO
。您的查詢也開放給SQL注入。
我正在使用mysql_real_escape_string。這應該保護它嗎? – user2742663
@ user2742663請參閱[**紅框**](http:// j。 mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http:///php.net/mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit
http://php.net/manual/en/function.mysql-query.php
的mysql_query返回資源不是值。
$retrieve_id = "SELECT userid FROM tb_users WHERE username = '$username'";
$result = mysql_fetch_assoc(mysql_query($retrieve_id));
$user = $result['userid'];
A)mysql_ *已被棄用 B)確保你參數化的輸入 C)試試這個:
$result = mysql_query($retrieve_id);
$user_id=$result["userid"];
功能的mysql_query一個選擇查詢返回的資源類型。對於結果你必須使用mysql_fetch_array或mysql_fetch_assoc函數。
$retrieve_id = "SELECT userid FROM tb_users WHERE username = '$username'";
$result = mysql_query($retrieve_id));
$row = mysql_fetch_assoc($result)) {
echo $row['userid'];
檢查mysql_query()上的php文檔。它實際上返回一個resource,而不僅僅是您正在查詢的值。
但是您甚至不應該使用mysql_query()
,因爲它在PHP 5.5中不推薦使用,並且您不想在升級時重做代碼,對嗎?
而是使用mysqli_query(),它將返回mysqli_result對象。然後從這個對象中,您可以檢索您正在查找的值fetch_field()
'var_dump'您的變量。他們不包含你認爲他們包含的內容。 – andrewsi
$ user_id = intval(mysql_fetch_array(mysql_query($ retrieve_id)); –