почему эта вставка mysqli не работает? - PullRequest
0 голосов
/ 20 сентября 2011

Я пытаюсь использовать mysqli объектно-ориентированным способом, это код:

class conect {
   function populate( ) {
         while ($row = $this->result->fetch_object()) { $this->data[] = $row; }
       $this->result->close();
   }
   function conect( ) {
     $mysqli = new mysqli('localhost', 'root', 'root', 'todo');  
        if (mysqli_connect_errno()) {
           printf("Connect failed: %s\n", mysqli_connect_error());
           exit();
           };
   }
   function register($name, $email, $password ) {
     $mysqli->query("INSERT INTO user (name, email, password) 
        VALUES ('$name', '$email', '$password')");
   }
 }

Проблема с регистрацией, если я добавлю этот запрос в функцию conect (), она работает,но так как идентификатор не работает, ошибка не отображается

Я пытался изучить объектно-ориентированные php и mysqli.Мне удалось использовать описанный выше стиль для создания динамического портфеля, но я впервые попытался написать в БД, поэтому я не знаю, в чем проблема

Надеюсь, что вы можете помочь

Спасибо

Ответы [ 2 ]

0 голосов
/ 20 сентября 2011

Проблема в том, что ваша переменная $mysqli внутри вашего register() метода не определена. Это также означает, что вы не можете вызывать любой метод из «ничего». Добавьте error_reporting(E_ALL); вверху вашего скрипта, чтобы увидеть предупреждения о неопределенных переменных.

Чтобы решить эту проблему, вы хотите сохранить объект MySQLi в поле объекта и получить к нему доступ с помощью $this->mysqli или sth. Таким образом, вы можете установить его в своем методе connect() и использовать его в своем методе register().

0 голосов
/ 20 сентября 2011

вы не отображаете никаких ошибок, поэтому неудивительно, что они не отображаются.

$sql = "INSERT INTO user (name, email, password) VALUES ('$name', '$email', '$password')";
if (!$mysqli->query($sql)) {
    trigger_error($mysqli->error);
}

но, чтобы вы знали, ваш код не имеет никакого отношения к mysqli и oop в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...