如果我正在使用where子句执行PHP MYSQL选择表,该子句只返回1个结果,那么有更简单的方法:
$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());
还是有更好的语法使用?
答案 0 :(得分:4)
mysql_query
根据您的查询获取结果集(实际上是引用结果集的资源)。这是与您的查询匹配的记录集。
mysql_fetch_array
从结果集中获取第一条记录,并将其作为数组返回。
因此,在您调用mysql_fetch_array
之前,您还没有以可用的格式获取数据。
旁注:考虑使用PDO
答案 1 :(得分:2)
fetch数组是必需的,mysql_query获取结果集(ressource),然后mysql_fetch_array获取结果集中的元素。
作为旁注,请注意SQL注入:http://en.wikipedia.org/wiki/SQL_injection
编辑:可能会比你需要的更高级,但在研究PDO时可能是值得的:http://php.net/manual/en/book.pdo.php
答案 2 :(得分:1)
答案 3 :(得分:1)
不,但人们为这个用例编写自己的函数很常见。它通常被命名为fetch_one($ sqlString)或fetch_first($ sqlString)
答案 4 :(得分:0)
您可以使用此功能,但如果要更改数据库结构,则会出现问题
$row = mysql_fetch_row($result);
echo $row[0]; //column 1
echo $row[1]; //column 2
您可能需要查看此http://www.php.net/manual/en/function.mysql-fetch-row.php