mysql_query()和mysql_result()有什么区别?

时间:2011-05-28 21:17:15

标签: php mysql json

我不确定在数据库上运行查询时是否应该使用mysql_result()mysql_query()。它在下面的情况下会有所不同吗?

$usertable = 'tableName';
$colName    = 'columnA'; 
$xlookup = 'columnB';

// Connect to Server
$con = mysql_connect($hostname, $username, $password);

// select db
mysql_select_db($dbname);

// run query
$result = mysql_query("SELECT $colName FROM $usertable where $xlookup = 5");

// pass results to webpage
$a = 51;
$x = array($a, $a, mysql_result($result));
echo json_encode($x);

目前,我是否使用此功能并没有起作用,因为两者都没有工作,但我原以为错误会阻止代码运行。


我试图使用以下代码来识别任何错误,但不确定它是否正确。

// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if (!$result) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die("<html><script language='JavaScript'>alert('Unable to run query'), $message</script></html>");
}

3 个答案:

答案 0 :(得分:4)

mysql_query执行查询并返回结果集。

mysql_result返回该结果集中的行供您使用。

查看一些示例here

mysql_result具有能够返回特定字段的区别,但正如其他提到的海报要慢于其他提取功能。

答案 1 :(得分:2)

mysql_query和mysql_result是完全不同的两个完全不同的函数。

mysql_query将SQL查询发送到数据库。

mysql_result根据查询结果的行(以及可选的列号,默认为零)从查询结果中获取值。

如果您要为每一行使用多个数据,那么您应该使用mysql_fetch_row。

答案 2 :(得分:2)

它们是不同的功能。 mysql_query执行查询(字符串)并返回可用于从中检索信息的资源对象。 mysql_result是一个帮助函数,允许您从资源中获取该数据。所以你需要两者。

或者实际上你没有。一旦你使用了mysql_query,你就可以使用其他函数,比如mysql_fetch_row来检索数据。大多数这些函数比mysql_result表现更好,效率更高。