У меня есть этот код, поэтому вставляйте значения в таблицу в 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.
У вас также нет ';' после эха «успешно».
Я бы посоветовал вам очистить пример кода и попробовать еще раз, и сообщите нам об этом.
Вещи для очистки
$sql = "INSERT INTO trail (User_Name, Quiz_ID) VALUES ('$param','$param1')";
Вам не нужно конкатенировать переменные в конкатенации строк, вы можете интерполировать. Тем не менее, вы должны использовать PDO с подготовленным оператором, чтобы избежать возможности для SQL-инъекции. ;
if(mysql->errno==0)
в (если вы не собираетесь переключиться на PDO для этого материала). mysql->error
чтобы быть mysql->error()
Ну, если следующий код не вызывает ошибки и показывает 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;}