2
Warning: mysql_query() expects parameter 2 to be resource, string given
in /var/www/xxxxx/data/www/xxxxx.ru/xxxxx/classes/mysql.class.php on line 51
  public function query($query, $comment = "") {
    if ($this -> conn) {
        $this -> conn = $this -> connect();
    }
    $start = microtime();
    if (!($result = mysql_query($query, $this -> conn)))  // <<-- line 51
    {
        exit(mysql_error());
    }
    $end*emphasized text* = microtime();

ここで何が問題になっていますか?

4

2 に答える 2

1

$connほとんどの場合、初期化されません。

NULLコンストラクターで$connを設定していることを確認し、if(!$this->conn)(感嘆符に注意して)チェックするか、コンストラクターで接続を行ってください。

このようなエラーメッセージが表示されたら、を使用var_dumpして問題の変数の内容を確認することを検討してください。

また、完全を期すために、mysql-functionsは-functionsに置き換えられていmysqliます。代わりにそれらを使用することを検討してください。

于 2013-03-10T08:46:38.800 に答える
0

ここにエラーがあります:

if ($this->conn) {
    $this->conn = $this -> connect();
}

する必要がありますif (!$this->conn) {。それ以外の場合$this->connは初期化されず、後続のにリソースを渡しませんmysql_query

クラスで空の文字列として宣言したと思いますpublic $conn = '';:)

ちなみに、mysql拡張機能が非推奨になっていることをご存知ですか?

于 2013-03-10T08:47:49.690 に答える