2011-12-06 80 views
0

如果我使用WHERE子句將返回唯一1的結果做一個PHP MYSQL選擇一個表中,有一個簡單的方法來做到這一點:PHP MYSQL查詢快捷方式?

$result = mysql_query("select * FROM cart WHERE ID='".$cartID."'") or die(mysql_error()); 
$cartrec = mysql_fetch_array($result); 

是需要$cartrec = mysql_fetch_array($result);或者我可以這樣做: $cartrec = mysql_query("select * FROM cart WHERE ID='".$cartID."'") or die(mysql_error());

或有更好的語法使用?

回答

4

mysql_query得到一個結果集(實際上,一個資源引用結果集)根據您的查詢。這是與您的查詢匹配的一組記錄。

mysql_fetch_array從結果集中獲取第一條記錄,並將其作爲數組返回。

因此,直到您調用mysql_fetch_array,您還沒有以可用格式獲取數據。

旁註:考慮使用PDO

2

是必需的取陣列,所述的mysql_query得到的結果集(的ressource),然後mysql_fetch_array得到的結果集中的元素。

作爲一個側面說明,要小心的SQL注入的:http://en.wikipedia.org/wiki/SQL_injection

編輯:可能是有點更先進的,你需要什麼,但它可能是值得尋找到PDO:http://php.net/manual/en/book.pdo.php

+0

不正確。查詢在'mysql_query'之後執行,但是返回是*資源*,您必須從中獲取記錄/行。 –

+0

對,不好意思,認爲標準的mysql_query沒有緩衝,我錯了:) – jValdron

1

$ cartrec = mysql_fetch_array($ result);需要

是的,否則你得到的資源指針不是結果集(數組)。

或有更好的語法使用?

是,MySQLi

1

沒有,但它相當常見的人自己寫函數用於該用途的情況。它通常被命名爲像fetch_one($ sqlString)或fetch_first($ sqlString)