-3

Выполняю SQL-запрос. Вроде все правильно, но почему-то не работает:

$db->query("INSERT INTO `mag` (`id`, `msg`, `iduser`, `idmy`) VALUES (NULL, 'hello', '2', '1')");
Anatoly
  • 795
  • Уточните что значит "не работает". – Anatoly Nov 24 '20 at 18:54
  • Я могу предположить, что id не может быть NULL ))) – Vladimir Afanasyev Nov 24 '20 at 18:56
  • Предположить тут можно многое, пусть автор раскроет "тайну" все-таки. – Anatoly Nov 24 '20 at 18:57
  • id null потомучто у него авто инкримент, точнее неработает запрос ошибок нет но и результата нет – zevs GG Nov 24 '20 at 19:14
  • А какой результат Вы ожидаете? Вариантов-то всего два - либо запись будет вставлена и вернётся TRUE, либо возникнет ошибка и вернётся FALSE - тогда надо смотреть сообщение об ошибке. – Akina Nov 24 '20 at 19:55
  • если авто инкремент , то его вообще не надо в запрос передавать. Null значит null – teran Nov 24 '20 at 19:55
  • @teran Null значит null ??? NULL - штатный способ потребовать от автоинкремента генерировать очередное значение. – Akina Nov 24 '20 at 19:56
  • @Akina :D так на кой его передавать то вообще ) – teran Nov 24 '20 at 20:26
  • @teran Вариант первый - когда не перечисляются поля в таблице назначения (INSERT INTO tablename VALUES (...)). Вариант второй - когда передаваемые значения есть параметры, и id может как автоприсваиваться, так и задаваться явно (INSERT INTO tablename (id, ...) VALUES (?, ...). – Akina Nov 24 '20 at 20:28
  • @Akina я про конкретно данный запрос – teran Nov 24 '20 at 20:33
  • @teran Ааа. Эт да... – Akina Nov 24 '20 at 20:39

1 Answers1

0

Проверьте наличие таблицы mag и её структуру. Так же можете в PhpMyAdmin или Mysql Workbench попытаться выполнить этот запрос. Нужно понимать с каким фреймворком или библиотекой вы работаете чтоб дать корректный ответ. Там должна быть возможность посмотреть логи или добавить try-catch.

  • На будущее: никогда не надо решать проблемы методом тыка. Не нужно "проверять наличие и структуру". Потому что если есть проблема с наличием и структурой, то БД сама сообщит об этом. И это будет гораздо точнее чем колупаться вручную. Также и добавление try-catch не помогает выбросу исключения, вообще никак. Поэтому единственная рекомендация при проблемах с запросами, это сконфигурировать РНР чтобы он сообщал об ошибках и собственно смотреть эти самые ошибки. – Ипатьев Dec 02 '20 at 13:55
  • Вот именно, что корректного ответа на поставленный вопрос может и не быть потому что нет контекста, не понятно при использовании каких библиотек или фреймворков человек пытался добиться результата. Отображение всех ошибок PHP может не помочь если есть проблемы в методе query из примера. Так что на будущее: вместо наездов давайте дельные советы нуждающимся. – Александр К Dec 02 '20 at 19:56
  • Я уже дал, если что – Ипатьев Dec 02 '20 at 19:57