0

これと同様の質問は、以前に何度も聞かれました。しかし、私の前に尋ねられた質問のいずれにも解決策が見つからなかったので、私は自由にもう一度質問します.

私のプログラムは、プログラムのすべてのデータベース接続を処理する、私が作成したクラスを使用しています。以前に使用したいくつかのモジュールは必ず同じクラスを使用していましたが、同じクラスを使用して新しいモジュールを実行することを選択した場合、警告は次のように表示されます-

警告: mysql_query(): 7 is not a valid MySQL-Link resource in where ... 49 行目。

作成した関数を使用して MySQL クエリを実行すると、警告が発生します。機能は次のとおりです-

public function runquery($_query)
{
  $result = mysql_query($_query,$this -> connection); //line 49
  if (! $result) die(mysql_error());
  else return $result;
}

関数は という名前のクラスに属してmysqlおり、改ざんも変更もされていません。したがって、データベース接続のために同じクラスに依存する他のすべてのモジュールが正常に機能するため、関数は技術的に期待どおりに機能するはずです。

ただし、クエリの実行は成功し、問題なくテーブルを更新できます (警告を除く)。runquery()関数が呼び出されるメイン プログラムのコード ブロックは次のとおりです。

$phpmyadmin = new mysql();
$phpmyadmin->connect('localhost', 'root', '');
$phpmyadmin->setdb('test_db');
$result = $phpmyadmin->runquery($Query);
unset($phpmyadmin);

したがって、mysqlの関数はこれまでと同じように機能し、クエリは問題なく実行されます。しかし、私が理解できない理由で警告が表示されます。何か助けはありますか?

4

2 に答える 2

3

この症状は、データベース接続が閉じられているか、ドロップされていることを示しています。コード内の不要なmysql_close()呼び出しを探します。さらに、次の機能を使用して問題をトラブルシューティングできます。

  1. is_resource()およびget_resource_type()$this->connectionを使用して、有効なデータ型であることを確認します。
  2. mysql_ping()を使用して、データベース接続が有効かどうかを確認します。

まれな問題である場合は、ファイルにログを記録し、再び発生するまで待ちます。

于 2012-06-21T09:18:43.080 に答える
0

スペースがあってはなりません。

$result = mysql_query($_query,$this->connection);
于 2012-06-21T09:01:34.830 に答える