0

使用 mysql_query() 函数时,以下代码无法按预期工作。

$conn = mysql_connect('localhost','user','pass') or die (mysql_error());

mysql_select_db('db') or die (mysql_error());

$sql = "SET @orig_lat=33.81978250;SET @orig_lon=-118.10641560; SET @dist =10;SELECT Name, Address, City, State, Zip, 3956 *2 * ASIN( SQRT( POWER( SIN( ( @orig_lat - abs( b.lat ) ) * pi( ) /180 /2 ) , 2 ) + COS( @orig_lat * pi( ) /180 ) * COS( abs( b.lat ) * pi( ) /180 ) * POWER( SIN( ( @orig_lon - b.lng) * pi( ) /180 /2 ) , 2 ) ) ) AS distance FROM tblDealer AS b HAVING distance < @dist ORDER BY distance LIMIT 10";

$result = mysql_query($sql, $conn) or die (mysql_error());

$num_rows = mysql_num_rows($result) or die (mysql_error());

echo $num_rows;

不过,这在 phpMyAdmin 中运行良好。谁能告诉我怎么了?

当我尝试运行它时出现以下错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'SET @orig_lon=-118.10641560; 附近使用的正确语法;SET @dist =10;在第 1 行选择姓名、地址、城市、州、Zi'
4

1 回答 1

3

来自mysql_query 上的 PHP 文档

mysql_query() 将唯一查询(不支持多个查询)发送到与指定链接标识符关联的服务器上当前活动的数据库。

如何克服这一点?请改用mysqli扩展名

于 2012-10-12T01:03:19.843 回答