Не отображается PHP MySQL INSERT и не отображается какая-либо ошибка

У меня есть этот код, поэтому вставляйте значения в таблицу в MySQL через PHP. Я пробовал весь возможный синтаксис Insert, он не вставляет данные … это коды, которые я использовал.

$param = "xyzxyz"; $param1 = "sdfdfg"; $sql = "INSERT INTO trail (User_Name, Quiz_ID) VALUES ('".$param."','".$param1."')"; $result = $mysql->query($sql); if($result) echo "successful"; else echo mysql->error; if(mysql->errno==0) echo "successful" else echo mysql->error; 

Я даже попробовал следующий синтаксис sql

 "INSERT INTO trail (User_Name, Quiz_ID) VALUES ('$param1','$param1')"; "INSERT INTO `trail` (`User_Name`, `Quiz_ID`) VALUES ('$param1','$param1')"; 

и я попробовал несколько других, ни один из них не вставляет ничего в таблицу. и это таблица в MySQL;

 trail User_Name varchar(35) Quiz_ID varchar(35) 

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

Любая помощь приветствуется.

благодаря

Просто заметьте, если кто-то работает с аналогичными проблемами:

У меня была аналогичная проблема. Вставьте запрос, работающий с PHPMyAdmin, но не работая над PHP и не выдавая никаких ошибок (результат всегда был прав ).

Причина в том, что я начал транзакцию, но забыл ее совершить …

 $mysqli->autocommit(FALSE); $mysqli->query( "START TRANSACTION" ); 

Никогда не забывайте об этом:

 $mysqli->commit(); 

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

Сначала проверьте mysqli :: $ errno.

 if(mysql->errno==0) echo "successful" else echo mysql->error; 

Я сделал это, если у вас нет установленного отладчика, просто попросите его отправить вам запрос. Таким образом вы можете увидеть, что такое окончательный запрос, и если у вас есть доступ к чему-то вроде phpMyAdmin, попробуйте вручную запустить запрос и посмотреть, что произойдет. Другое дело, убедитесь, что вы правильно искали введенную запись, если вы используете поисковый запрос из-за количества записей, убедитесь, что условие WHERE является правильным, что сожгло меня несколько раз.

EDIT Отсутствует символ вокруг имен. Мне нужно запустить все мои MySQL-запросы, например

 `nameOfThing` 

вместо имени nameOfThing

 $param = "xyzxyz"; $param1 = "sdfdfg"; $sql = "INSERT INTO `trail` (`User_Name`, `Quiz_ID`) VALUES ('".$param."','".$param1."')"; $result = $mysql->query($sql); if($result) echo "successful"; else echo mysql->error; if(mysql->errno==0) echo "successful" else echo mysql->error; 

FYI, вы дважды вставляете $ param1.

У вас также нет ';' после эха «успешно».

Я бы посоветовал вам очистить пример кода и попробовать еще раз, и сообщите нам об этом.

Вещи для очистки

  1. $sql = "INSERT INTO trail (User_Name, Quiz_ID) VALUES ('$param','$param1')"; Вам не нужно конкатенировать переменные в конкатенации строк, вы можете интерполировать. Тем не менее, вы должны использовать PDO с подготовленным оператором, чтобы избежать возможности для SQL-инъекции.
  2. Добавьте отсутствующий ;
  3. поместите эту первую проверку if(mysql->errno==0) в (если вы не собираетесь переключиться на PDO для этого материала).
  4. Исправить mysql->error чтобы быть mysql->error()
  5. Может быть, некоторые другие вещи из комментариев.

Ну, если следующий код не вызывает ошибки и показывает 1 затронутую строку, скорее всего вы ищете результат в неправильной базе данных.

 ini_set('display_errors', 1); error_reporting(E_ALL); $sql = "INSERT INTO trail (User_Name, Quiz_ID) VALUES ('testing','1')"; $mysql->query($sql); var_dump($mysql->error,$mysql->affected_rows); 

Мои таблицы были таблицами InnoDB, и когда я изменил свои таблицы в MyISAM, вставка работала нормально. Ну, я никогда не сталкивался с этой проблемой раньше. Что ж, пока это трюк.

Если я хочу использовать механизм InnoDB для транзакций? Как я могу заставить php вставлять значения в таблицу InnoDB? Кто-нибудь получил какое-нибудь предложение? И я использую WAMP-сервер, а MySQL – версия 5.5.24. И я изменил InnoDB conf в my.ini, но это тоже не сработало?

попробуй это

 $param = "xyzxyz"; $param1 = "sdfdfg"; $sql = "INSERT INTO trail (User_Name, Quiz_ID) VALUES ('".$param."','".$param1."')"; $result = $mysql_query($sql); if($result){ echo "successful";} else { echo " not successful;}