0

Web サイトを Windows サーバーから Snow Leopard サーバー (正確には OSX 10.6.8) に移行していますが、mysql クエリでいくつかの互換性の問題が発生しています。すべてのクエリで「データベースが選択されていません」というエラーが返され、そのことを理解することはできません。私はそれについていくつかの調査を行いましたが、探していた答えを見つけることができませんでした。私の問題を解決するのに役立つかもしれないいくつかの指標があります.

これが私の接続ファイルのインクルードです:

$link = mysql_connect("localhost", "username", "password") or die("Invalid query: " . mysql_error());
mysql_select_db("tradeport", $link) or die("Database Connection Error: ".mysql_error());

これが私のクエリの1つです:

$sSQL="SELECT mainPhone FROM admins";
$result21=mysql_query($sSQL) or die ("MySQL err: ".mysql_error()."<br>".$sSQL);

if($row21 = mysql_fetch_array($result21))
{$phoneMain = $row21['mainPhone'];}

追加したいもう 1 つの注意点は、このサイトで移行を開始したときに、すべての php がページ ソースに表示されていたことです。ここに示すように、すべての php ブラケットをより正式なものに置き換える必要がありました。

<? //before

<?php //after

現在、PHP バージョン 5.3.8 と MySQL バージョン 5.0.92 を実行しています。

どんな情報でも大歓迎です。

4

4 に答える 4

0

「データベースが選択されていません」というエラーメッセージが表示されているとのことですが、エラーメッセージが「データベース接続エラー:」であり、その後にmysqlエラーコードが続くため、実際にmysql_select_db行のコードを実行しているのではないかと思います。

また、ユーザー名とパスワードの値を取得するインクルードファイルはどこにありますか?リテラル文字列を引用しましたが、最初はセキュリティ上の目的であると思いました。

ご提供いただいたコードスニペットは、全体像を示しているわけではないと思います。

于 2012-09-11T16:01:01.290 に答える
0

私はそれを試してみましたが、次のエラーが返されます: テーブルのユーザー ''@'localhost' に対して SELECT コマンドが拒否されました – Trig3rz 20 分前

データベース ユーザーが正しい権限でセットアップされていることを確認してください GRANT SELECT ON db.* TO user@'localhost' IDENTIFIED BY 'pass';

元のサーバーの php.ini ファイルをチェックして、どのような違いがあるかを確認することをお勧めします。 <?はphpの短いタグであり、php iniファイルで次の行で有効になっています。

short_open_tag=On
于 2012-09-11T16:07:29.977 に答える
0

データベース名をクエリに追加してみてください

"SELECT mainPhone FROM tradeport.admins"
于 2012-09-11T15:47:58.837 に答える
0

mysql_*またはmysqli_*(使用する必要がある) 関数呼び出しでdb 接続を参照することは、常に良い習慣です。

試す:

$result21=mysql_query($sSQL, $link) or die ("MySQL err: ".mysql_error()."<br>".$sSQL);
于 2012-09-11T15:50:22.137 に答える