Вызов функции-члена prepare () для необъекта - Подготовленные операторы в MySQLi и PHP - PullRequest
0 голосов
/ 23 декабря 2011

Я изучаю MySQLi на php, и я не могу понять, почему я получаю вызов функции-члена prepare () при ошибке, не связанной с объектом.

Вот мой код, как показано ниже:

public function fetch_posts($num = 5)
{

    global $mysqli;

    if($stmt = $mysqli->prepare("SELECT * FROM posts ORDER BY id desc LIMIT ?")) 
    {

       /* Bind parameters
          s - string, b - boolean, i - int, etc */
       $stmt -> bind_param("i", $num);

       /* Execute it */
       $stmt -> execute();

       /* Bind results */
       $stmt -> bind_result($result);

       /* Fetch the value */
       $stmt -> fetch();

       /* Close statement */
       $stmt -> close();

    }        
    $mysqli -> close();
}

$mysqli - это вызов соединения MySQLi, $mysqli = new mysqli(DB_HOST, DB_ID, DB_PW, DB);, который находится в функции __construct(), оба находятся в одном классе.

Я сделал что-то явно не так? Я не вижу этого.

1 Ответ

0 голосов
/ 23 декабря 2011

$mysqli по какой-то причине не является соединением MySQL.

Если у вас не настроен отладчик, чтобы вы могли пошагово просмотреть код, используйте gettype($mysqli) прямо перед вашим вызовом prepare(), чтобы узнать, с чем вы имеете дело.

...