Intereting Posts
Не удалось отправить электронную почту из пользовательской команды Symfony2, но может из другого места в приложении Ошибка синтаксиса – неожиданно ":" Почему некоторые операции с потоковыми массивами в PHP, похоже, не работают? Может ли PHP создать экземпляр объекта из имени класса в виде строки? Pinging IP-адрес с использованием PHP и повторение результата php, если последний символ является «/», если нет, Как я могу разобрать JSON в html-таблицу с помощью PHP? PHP vs OO PHP – Какой из них использовать? использовать значение столбца как имя столбца mysql Ошибка PHP json_encode Лучшая PHP-платформа для тех, кто ее никогда не использовал? Как проверить, подходит ли jpeg в памяти? Как установить правильный URL для отладки PHP eclipse Межпроцессная коммуникация внутри PHP с непрерывным процессом? Передача переменной с одной страницы на другую в php для динамического заполнения открываемых тегов Facebook

PHP MySQLi INSERT не работает, никаких ошибок

В отличие от этого вопроса , но похоже, что я не получаю сообщение об ошибке при добавлении информации в мою базу данных.

$sql = "INSERT INTO 'nlcc_ver1'.'tUsers' ('userID', 'userName', 'userPassword', 'userHash', 'user_first_name', 'user_last_name', 'user_corps', 'is_admin', 'is_trg', 'is_sup', 'is_co') VALUES (NULL, '" . $userName . "', '" . $hash . "', '" . $salt . "', '" . $f_name . "', '" . $l_name . "', '" . $corps . "', '" . $admin . "', '" . $trg . "', '" . $sup . "', '" . $co . "')"; $hostname_Database = "localhost"; $database_Database = "nlcc_ver1"; $username_Database = "root"; $password_Database = ""; $mysqli = new mysqli($hostname_Database, $username_Database, $password_Database, $database_Database); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $result = $mysqli_query($mysqli, $sql); echo "Query run. Inserted UserID " . mysqli_insert_id($mysqli) . "<br />"; 

Разбиваются строки, чтобы избежать прокрутки в сторону … На веб-странице указано, что mysqli_insert_id ($ mysqli) равно 0, и ничто не добавляется в таблицу в моей базе данных. Я не вижу ошибки, связанной с появлением базы данных, и MySQL работает на моем сервере, а phpinfo () показывает, как загружаются расширение MySQL и MySQLI. Это всего лишь машина для разработки, поэтому не беспокойтесь о безопасности (т.е. нет пароля). Я попытался решить проблему, но не слишком много нахожу. Я не знаю о объектно-ориентированном программировании на PHP с помощью ->, я использую _. Поддерживается ли этот метод?

Вы смешивали процедурные и объектно-ориентированные стили MySQLi. Это привело к тому, что вы пытались использовать такие функции, как mysqli_query($mysqli) вместо функций-членов, таких как $mysqli->query() . Ваш $mysqli – это объект , а не дескриптор ресурса.

И вы не выполняете проверку ошибок в своем запросе. Если бы вы были, вы бы поняли, что ошибочно использовали одинарные кавычки для разграничения имен таблиц и полей, а не обратных ссылок.

 $sql = "INSERT INTO `nlcc_ver1`.`tUsers` (`userID`, `userName`, `userPassword`, `userHash`, `user_first_name`, `user_last_name`, `user_corps`, `is_admin`, `is_trg`, `is_sup`, `is_co`) VALUES (NULL, '" . $userName . "', '" . $hash . "', '" . $salt . "', '" . $f_name . "', '" . $l_name . "', '" . $corps . "', '" . $admin . "', '" . $trg . "', '" . $sup . "', '" . $co . "')"; $hostname_Database = "localhost"; $database_Database = "nlcc_ver1"; $username_Database = "root"; $password_Database = ""; $mysqli = new mysqli($hostname_Database, $username_Database, $password_Database, $database_Database); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $result = $mysqli->query($sql); if (!$result) { printf("%s\n", $mysqli->error); exit(); } echo "Query run. Inserted UserID " . $mysqli->insert_id . "<br />"; 

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

 $mysqli_query($mysqli, $sql); 

должно быть

 mysqli_query($mysqli, $sql); 

ИЛИ

 $mysqli->query($sql); 

И позже

 $mysqli->insert_id(); 

Посмотри на это:

 'nlcc_ver1'.'tUsers' 

Вы должны использовать backticks здесь в качестве символа цитаты:

 `nlcc_ver1`.`tUsers` 

Но однако (предполагая, что $ in $ mysqli_query – это просто опечатка): вы не получите ошибок для запроса, если только вы не используете mysqli_error () сразу после выполнения запроса.

SET AutoCommit = 1 перед вставкой

 $mysqli->query('SET AUTOCOMMIT = 1');