0

私は自分の関数を MySQL から MySQLi 標準に移す作業をしています。

これは getresult の古い関数です

  function getResult($sql) {
            $result = mysql_query($sql, $this->conn);
            if ($result) {
                return $result;
            } else {
                die("SQL Retrieve Error: " . mysql_error());
            }
        }

ただし、mysqli_query 関数については W3schools に従っています。私が現在いる場所はここです。

 function getResult($connection){
        $result = mysqli_query($connection->conn);
        if ($result) {
            return $result;
        } else {
            die("SQL Retrieve Error: " . mysqli_error());
        }
    }

さて、W3schools の例は、mysqli_query の使用方法とは少し異なります。W3Sの例のように、一部の入力や定数ではなく、DBに向けようとしています。

Notice: Trying to get property of non-object in C:\xampp\htdocs\cad\func.php on line 92

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\cad\func.php on line 92

Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\cad\func.php on line 96
SQL Retrieve Error:

ありがとうございました

4

2 に答える 2

1

PHP ヘルプ ファイルから、これらの関数定義を見つけました

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
string mysqli_error ( mysqli $link )

mysqli_query() はリンクと実際のクエリを必須パラメータとして受け取り、mysqli_error もリンクを 1 つとして受け取ります。

http://php.net/manual/en/mysqli.query.php

http://www.php.net/manual/en/mysqli.error.php

于 2013-07-07T22:40:19.223 に答える
1

あなたのバージョンは、送信したいクエリが含まれていないという理由だけでなく、いくつかの理由で機能しません。$this->conn が何らかの形で適切に設定されていると仮定して、これを試してください:

 function getResult($sql) {
        $result = mysqli_query($this->conn, $sql);  //Note parameters reversed here.
        if ($result) {
            return $result;
        } else {
            die("SQL Retrieve Error: " . mysql_error());
        }
    }
于 2013-07-07T22:40:40.753 に答える