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 構文にエラーがあります。near 'SET @orig_lon=-118.10641560; を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。SET @dist =10;SELECT Name, Address, City, State, Zi' at line 1
4

1 に答える 1

3

mysql_queryのPHPドキュメントから。

mysql_query()は、指定されたlink_identifierに関連付けられているサーバー上の現在アクティブなデータベースに一意のクエリ(複数のクエリはサポートされていません)を送信します。

これを克服する方法は?代わりにmysqli拡張機能を使用してください。

于 2012-10-12T01:03:19.843 に答える