如果我正在使用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());
还是有更好的语法?
mysql_query
获得一个结果集(实际上,一个资源引用一个结果集)基于您的查询。这是与您的查询匹配的记录集。
mysql_fetch_array
从结果集中获取第一条记录,并将其作为数组返回。
所以,直到你调用了mysql_fetch_array
,你还没有得到可用格式的数据。
旁注:考虑使用PDO
获取数组是必需的,mysql_query获取结果集(资源),然后mysql_fetch_array获取结果集中的元素。
作为旁注,要小心SQL注入:http://en.wikipedia.org/wiki/SQL_injection
编辑:可能比您需要的更高级一些,但在查看PDO时可能值得:http://php.net/manual/en/book.pdo.php
$cartrec = mysql_fetch_array($result);需要
是,否则你得到一个资源指针,而不是一个结果集(数组)。
还是有更好的语法?
是的,MySQLi
不,但是人们为这个用例编写自己的函数是很常见的。通常命名为fetch_one($sqlString)或fetch_first($sqlString)
您可以使用这种方法,但是如果数据库结构发生变化,就会出现问题
$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