-1

NetBeans を使用して PHP コードを実行しています。このコードは、当社のサーバー上のデータベース テーブルを更新するために使用されます。だから私はコードを使用しました:

$link = mysql_connect('192.168.X.X:X','X','X');
mysql_select_db('X',$link);
if (!$link) {die('Could not connect: ' . mysql_error());}
            echo 'Connected successfully';
            mysql_close($link);

しかし、実行をクリックすると、次のエラー メッセージが返されます。

( ! ) Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '192.168.0.140' (10060) in C:\wamp\www\database\index.php on line 9
( ! ) Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\database\index.php on line 10
Call Stack
4

3 に答える 3

2

最初のエラーは自明です。PHP は、指定されたホストのデータベースに接続できません。これがなぜなのかは、お客様側でさらに調査する必要があります (SQL サーバーは実行されていますか? 非ローカル接続を受け入れるように構成されていますか? SQL サーバーがリッスンしているポートを保護するファイアウォールはありますか?)

2 番目のエラーは、接続が成功したかどうかをわざわざ確認せず、成功したと仮定しているためです。接続を確立できない場合、mysql_connect は false を返します。有効なオープン接続があることを確認する前に、これを確認する必要があります。

$link = mysql_connect('192.168.X.X:X','X','X');
if (false !== $link)
{
    mysql_select_db('X',$link);
    // Rest of your code goes here
}

ちなみに、mysql_* 関数は非推奨であることを考慮する必要があります。mysqli や PDO など、はるかに優れた代替手段があり、代わりにそれらのいずれかを使用する必要があります。PHP.net のマニュアル ページには、代替案に関するいくつかの提案があります。

于 2012-10-17T12:32:32.603 に答える
0

理由は次のとおりです。

MySQL サーバーが実行されていません。

MySQL の構成ファイルは、特定の IP:Port でのみリッスンしていること、および指定されたアドレスを介して通信していないことを指定しています。

MySQL サーバーへの認証に使用されているユーザー名は、クライアント コンピューターの IP アドレス/ホストからの接続が許可されていません

詳細については、次のリンクを参照してください

http://dev.mysql.com/doc/refman/5.1/en/can-not-connect-to-server.html

于 2012-10-17T12:33:58.273 に答える
0

問題を検出するために mysql ログをチェックできます。正確に何が問題なのかを判断するのは困難です。サーバーが ip 経由のリモート接続用に構成されていない可能性があります。それが問題である場合は、スクリプトが同じサーバー上にある場合に使用できます

$link = mysql_connect('localhost','X','X') or die('error connecting to db');
于 2012-10-17T12:43:40.513 に答える