PHP MYSQL查询快捷方式?

时间:2011-12-06 14:45:34

标签: php mysql

如果我正在使用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());

还是有更好的语法使用?

5 个答案:

答案 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)

  

$ cartrec = mysql_fetch_array($ result);需要

是的,否则你得到的资源指针不是结果集(数组)。

  

还是有更好的语法使用?

是的,MySQLi

答案 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