php insert into не работает

Не работает добавление данных (INSERT INTO) в таблицу

Начал изучать PHP, с книги Head First PHP & MySQL, дошел до раздела в котором нужно добавить данные из заполненной формы в базу данных.

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

Высвечивается ошибка Error querying database. Запрос на создание таблицы сначала делал сам, потом удалил, на всякий случай, и сделал запрос из файла книги:

Предполагаю, что не всю информацию предоставил, спрашивайте, что нужно предоставлю. Прошу помочь, кто чем может? Если пошлете в Google, то хоть намекните состав запроса, область поиска.

1 ответ 1

В этом коде две принципиальные ошибки.

Поскольку в mysqli работа с плейсхолдерами сложна до такой степени, что новички в принципе неспособны освоить её самостоятельно, то вместо mysqli надо надо сразу учить PDO.

Чтобы ошибки mysql отображались, надо перед соединением с БД написать строчку

а все чудовищные «or die()» из кода надо наоборот удалить подчистую и не писать больше никогда.

Если после этого запустить код, то ошибка будет выведена на экран или туда, куда обычно выводятся все ошибки. Её надо будет прочесть и исправить.

Но повторюсь, вместо mysqli надо в обязательном порядке использовать PDO. Это все равно придется делать в будущем, поэтому чем раньше, тем лучше. Вот хорошее руководство.

Источник

mysql — PHP PDO — INSERT INTO с bindParam не работает

Я застрял в этом маленьком куске кода:

Я уже использовал PDO для ВЫБОРА вещей из моей базы данных, но с INSERTING что-то не работает. У пользователя есть доступ только к INSERT — я уже пробовал это на моем бэкэнде.

Это мой класс fruit_object:

Моя база данных работает на сервере MySQL — это причина? Должен ли я работать с вопросительными знаками (?)?

Решение

PHP PDO — INSERT INTO с bindParam не работает

Если вы вставляете идентификатор в поле автоинкремента и уже вставили его, это вызовет ошибку MySQL (дублирует значение поля A_I) — Martin

Да, я знаю это, я использую ключевое слово DEFAULT в своем реальном заявлении. — louis12356

объяснить; ключевое слово по умолчанию для чего? Мартин

Существует ключевое слово SQL «ПО УМОЛЧАНИЮ», которое автоматически подсчитывает идентификатор. — louis12356

Вам следует не предоставлять значение для вашего автоинкремента ( id ) столбец. Как это выглядит, что вы даете MySQL Инструкция с помощью Переменная PDO который будет Никогда не работай. Это потому, что PDO использует Подготовленные заявления и поэтому переменные только когда-либо будут переменными и никогда не могут быть инструкции.

Default Ключевое слово в MySQL является инструкцией для программы MySQL. Эта инструкция будет игнорироваться не только потому, что она запрещена, но и потому, что вы передаете STRING значение для вставки PDO, которая утверждает, что это должно быть INT :

Значения автоинкремента просто не нужно вставлять, игнорируйте их:

Пример того, что вы пытаетесь запустить:

Но из-за ограничений безопасности PDO (игнорируя String / Int проблема типа данных) что на самом деле выполняется:

Итак, вы пытаетесь вставить строковую переменную «Default» в целочисленный столбец в MySQL

Что вам нужно сделать, это либо:

Это выведет ваше значение в скрипт.

Другие решения

Вам не хватает закрывающей скобки для подготовки и точки с запятой

если не работает, добавьте эту строку, чтобы проверить ошибку

Если вы используете (?) Будет следующий код

Источник

INSERT INTO в таблицу

Не как не могу добавить запись в таблицу

Таблицу создаю в phpmyadmin

Помощь в написании контрольных, курсовых и дипломных работ здесь.

INSERT INTO не всавляет в таблицу.
Форма: 29

Простите за занудность php insert into не работает. Смотреть фото php insert into не работает. Смотреть картинку php insert into не работает. Картинка про php insert into не работает. Фото php insert into не работает

на странице отображается Resource id #5, т.е. как я понял запрос проходит(выполняется)

на странице не отображается НИЧЕГО

Добавлено через 2 минуты
.

Добавлено через 2 минуты
Опять ошибся в имени таблице, не users, а tabl

Добавлено через 29 секунд
Опять ошибся в имени таблице, не users, а tabl

С помощью phpadmin создал БД название 1410, в ней 2 таблицы oshibka(id, date, col) и users(id, login, password, avatar)

Запрос в файле sava_user.php в самом низу

Добавлено через 5 минут
Забыл style.css

Добавлено через 6 минут
Сделал в phpadmin запрос

Помощь в написании контрольных, курсовых и дипломных работ здесь.

INSERT INTO не заносятся данные в таблицу базы данных
Помогите пожалуста разобратся. Почему у меня не заносятся данные в таблицу БД mySQL В Файле.

php insert into не работает. Смотреть фото php insert into не работает. Смотреть картинку php insert into не работает. Картинка про php insert into не работает. Фото php insert into не работаетInsert в таблицу
Добрый день, пытаюсь следующим запросом выполнить insert в таблицу1, при этом выбрав из таблицы2 id.

Insert into в таблицу с последовательностью
Здравствуйте, У меня есть таблица в ms sql server lecturer (id, surname, name, city) там же.

Источник

Форум PHP программистов ► PHP практикум ► PHP + SQL

php insert into не работает. Смотреть фото php insert into не работает. Смотреть картинку php insert into не работает. Картинка про php insert into не работает. Фото php insert into не работаетphp insert into не работает. Смотреть фото php insert into не работает. Смотреть картинку php insert into не работает. Картинка про php insert into не работает. Фото php insert into не работаетphp insert into не работает. Смотреть фото php insert into не работает. Смотреть картинку php insert into не работает. Картинка про php insert into не работает. Фото php insert into не работает

php insert into не работает. Смотреть фото php insert into не работает. Смотреть картинку php insert into не работает. Картинка про php insert into не работает. Фото php insert into не работает

php insert into не работает. Смотреть фото php insert into не работает. Смотреть картинку php insert into не работает. Картинка про php insert into не работает. Фото php insert into не работает

Новичок
php insert into не работает. Смотреть фото php insert into не работает. Смотреть картинку php insert into не работает. Картинка про php insert into не работает. Фото php insert into не работает

Профиль
Группа: Пользователь
Сообщений: 48
Пользователь №: 17038
На форуме:
Карма:

php insert into не работает. Смотреть фото php insert into не работает. Смотреть картинку php insert into не работает. Картинка про php insert into не работает. Фото php insert into не работает

Вроде всё правильно написал

Сначала сделай запрос так, чтобы он был в одной переменной, а потом выведи эту переменную через echo.
И тогда уж посмотрим, что у тебя в запросе «не так». Скорее всего, спецсимволы какие-нибудь, которые надо экранировать.

PS. Да и что значит «не работает «? Ошибка какая-то выходит, или просто не заносятся данные?

my sql _error() говорит:

Цитата
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘font-size:small;’>text
Крупный текст:

подобный вопрос, как надо экранировать?

ошибку выдаёт такую:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘C:\WINDOWS’, ‘C:\WINDOWS\system32\cmd.exe’, ‘.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.’ at line 1

Источник

Как выполнить запрос «INSERT IF NOT EXIST» в MySQL?

У меня есть таблица с 14 миллионами записей. Если я хочу добавить больше данных в том же формате, есть ли способ гарантировать, что запись, которую я хочу вставить, еще не существует, без использования пары запросов (т. е. один запрос для проверки и один – для вставки)?

Гарантирует ли ограничение unique поля при выполнении insert отказ выполнения, если оно уже существует?

Ответ 1

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

Есть 3 возможных решения: использовать INSERT IGNORE, REPLACE или INSERT… ON DUPLICATE KEY UPDATE.

Итак, у нас есть таблица:

CREATE TABLE `transcripts` (

`ensembl_transcript_id` varchar(20) NOT NULL,

`transcript_chrom_start` int(10) unsigned NOT NULL,

`transcript_chrom_end` int(10) unsigned NOT NULL,

PRIMARY KEY (`ensembl_transcript_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Теперь представьте, что у нас есть автоматический конвейер, импортирующий метаданные транскриптов из Ensembl, и что по разным причинам конвейер может сломаться на любом этапе выполнения. Таким образом, нам нужно обеспечить две вещи:

повторные запуски конвейера не уничтожат нашу базу данных ;

повторное выполнение не прекратится из-за ошибок «дублирования первичного ключа».

Метод 1: использование REPLACE

REPLACE INTO `transcripts`

SET `ensembl_transcript_id` = ‘ENSORGT00000000001’,

Если запись существует, она будет перезаписана; если ее еще нет, она будет создана. Однако в нашем случае использование этого метода неэффективно: нам не нужно перезаписывать существующие записи, их можно просто пропустить.

Метод 2: использование INSERT IGNORE:

INSERT IGNORE INTO `transcripts`

SET `ensembl_transcript_id` = ‘ENSORGT00000000001’,

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

Метод 3: использование INSERT… ON DUPLICATE KEY UPDATE:

Ответ 2

Решение:

INSERT INTO `table` (`value1`, `value2`)

SELECT ‘stuff for value1’, ‘stuff for value2’ FROM DUAL

WHERE NOT EXISTS (SELECT * FROM `table`

WHERE `value1`=’stuff for value1′ AND `value2`=’stuff for value2′ LIMIT 1)

Объяснение:

SELECT * FROM `table`

WHERE `value1`=’stuff for value1′ AND `value2`=’stuff for value2′ LIMIT 1

SELECT ‘stuff for value1’, ‘stuff for value2’ FROM DUAL

INSERT INTO `table` (`value1`, `value2`)

вставляет данные, если они были возвращены промежуточным запросом.

Ответ 3

Вот функция PHP, которая вставит строку, только если все указанные значения столбцов еще не существуют в таблице.

Если один из столбцов отличается, строка будет добавлена.

Если таблица пуста, строка будет добавлена.

Если существует строка, в которой все указанные столбцы имеют указанные значения, строка не будет добавлена.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *