Pdo не работает insert

Не работает insert запрос (PDO)

Выдает следующую ошибку.

Пытаюсь вставить в таблицу books данные, которые получаю с формы:
«Title» — «Уличный кот по имени Боб»,
«PublishYear» — 2013,
«PublishHouse» — «Рипол Классик'»

Почему возникает эта ошибка и что надо исправить?
И еще, мне нужно, чтобы этот запрос возвращал id только что вставленной записи, а lastInsertId() возвращает true.

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

Не работает запрос INSERT
$query=mysql_query(«INSERT INTO `user`.

Не работает запрос INSERT с LEFT JOIN
Здравствуйте, у меня есть две таблицы tovari -id -tovar -client_id Clients -id -name Мне.

Insert и PDO
Прописываю Insert запрос к БД, с использованием PDO: $reg_data = array( ‘user’ => $user.

Неработает INSERT INTO в PDO
Такая нарисовалась ситуация, делаю INSERT запрос к БД, возвращает TRUE, но запись в БД не.

Решение

PHP, PDO, POST, INSERT
Есть несколько баз данных, для удобства редакторования, администратор отправляет данные через метод.

PDO+INSERT+POSTGRESQL+ array columns
как сделать Insert в PDO+INSERT+POSTGRESQL+ array columns. просто пример. $query =.

Не выполняется INSERT средствами PDO prepared statement
Собственно проблема не вставляются данные в бд когда передаю их через placeholder’ры когда передаю.

Перенос параметра при INSERT в другой запрос INSERT
Здравствуйте. Есть таблица Сlient, в которую при INSERT ClientID присваивается инкрементом. На.

Источник

Ошибка с PDO с INSERT INTO

Не добавляет запись в таблицу. Может я слепой?)

‘ ; $db = Db :: getConnect ( ) ; $sql = ‘INSERT INTO `product` (name, category_id, code, price, availability, brand, description, is_new, is_recommended, status) VALUES (:name, :category_id, :code, :price, :availability, :brand, :description, :is_new, :is_recommended, :status)’ ; $result = $db -> prepare ( $sql ) ; if ( $result -> execute ( $options ) ) < return $db ->lastInsertId ( ) ; > return 0 ; > >

$options имеет такой вид

Добавлено через 9 минут
а вот таблица

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

Ошибка в PDO с INSERT INTO: SQLSTATE[HY093]: Invalid parameter number
Вот такая ошибка выскакивает: Warning: PDOStatement::execute(): SQLSTATE: Invalid parameter.

Insert и PDO
Прописываю Insert запрос к БД, с использованием PDO: $reg_data = array( ‘user’ => $user.

PDO INSERT Placeholder
Посмотрите пожалуйста. где я ошибся? Данные не отправляются в базу .

INSERT, JOIN, PDO
Привет, мир! Подскажите, как делается вот такие вот плюшки, см. ниже? 1) Есть простое поле для.

Вообще код 00000 говорит что все ok. Тогда лучше в функции getConnect. Установить настройку чтобы при ошибке вываливались исключения

setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION )

Fatal error: Uncaught PDOException: SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column ‘code’ at row 1 in E:\OpenServer\domains\less.php\models\Product.php:196 Stack trace: #0 E:\OpenServer\domains\less.php\models\Product.php(196): PDOStatement->execute() #1 E:\OpenServer\domains\less.php\controllers\AdminProductContr oller.php(59): Product::createProduct() #2 E:\OpenServer\domains\less.php\components\Router.php(51): AdminProductController->actionCreate() #3 E:\OpenServer\domains\less.php\index.php(12): Router->run() #4

thrown in E:\OpenServer\domains\less.php\models\Product.php on line 196

А данные в массиве в любой последовательности могут быть?

Источник

PDO. Не работает INSERT

Не вставляет =(
В таблице:
id int(11)
user_id varchar(255)
email varchar(255)
salt varchar(255)
categiry varchar(255)

global $db_host , $db_login , $db_pass , $db_name ;
$db_host = ‘1111’ ;
$db_login = ‘111’ ;
$db_pass = ‘1111’ ;
$db_name = ‘11111’ ;

$stream = $db -> prepare ( «SELECT email FROM `subscribe` WHERE (email) values (‘:email’)» ) ;
$stream -> bindParam ( ‘:email’ , $_GET [ ’email’ ] ) ;
$stream -> execute ( ) ;
global $mailtest ;
$mailtest = $stream -> fetchAll ( ) ;
if ( count ( $mailtest ) == 0 )
<
$STH = $db -> prepare ( «INSERT INTO subscribe (user_id, email, salt, category) values (‘:user_id, :email, :salt, :category’)» ) ;
$STH -> bindParam ( ‘:user_id’ , $_GET [ ‘uid’ ] ) ;
$STH -> bindParam ( ‘:email’ , $_GET [ ’email’ ] ) ;
$STH -> bindValue ( ‘:salt’ , «Shinkai» ) ;
$STH -> bindValue ( ‘:category’ , ‘2,4,9’ ) ;
$STH -> execute ( ) ;
$newmail = ‘true’ ;
>
else < $newmail = 'false ' . count ( $mailtest ) ; >
echo $newmail ;
>
else
<
echo «Please, kiss my ass :3» ;
>
?>

1 ответов

$stream = $db -> prepare ( «SELECT email FROM `subscribe` WHERE email = :email» ) ;

$STH = $db -> prepare ( «INSERT INTO subscribe (user_id, email, salt, category) VALUES (:user_id, :email, :salt, :category)» ) ;

И избавьтесь от global variables, как только так сразу.

Источник

Не работает PHP (PDO/ INSERT/ SELECT)

Я начал изучать и PHP, и ASP.NET, пока что у меня в голове каша..
ОС: Ubuntu 18.04
Сервер: Server version: Apache/2.4.29 (Ubuntu)/

PHP: PHP 7.2.15-0ubuntu0.18.04.1
MySQL: mysql Ver 14.14 Distrib 5.7.25 phpmyadmin: 4.8.5

А внутри add.php расположен след. код:

А внутри controller.php расположен следующий код:

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

И еще как сделать так, чтоб при нажатии, на кнопку AddDB и отправил запрос,и потом возвращался на главную страницу?

1 ответ 1

Это очень хорошй и важный вопрос.
Но ответ на него не совсем очевидный. И звучит он так: «Надо правильно соединяться с PDO».

Вообще, тема «что делать, если код не работает» довольно обширная, но самое первое, что надо делать в таком случае — это попросить РНР сообрщать обо всех ошибках, которые произошли в скрипте. А в данном случае — попросить ПДО сообщать об ошибке, произошедшей при выполнении запроса. И вот как раз для этого и надо правильно соединяться: Как правильно соединяться с Mysql в PDO. помимо других важных настроек мы таже сконфигурируем правильный режим выброса ошибок для PDO.

После этого PDO начнет нам говорить, в чем у нас проблема! Надо только убедиться, что PHP в принципе настроен так, чтобы сообщать об ошибках.

Скорее всего PDO сообщит о том, что не найдена база данных или хост. Поскольку никаких украшений (включая пробелы) в DSN быть не должно. Но конкретная ошибка в данном случае не важна, поскольку ошибки всегда разные, и на все случаи все равно ответить невозможно. Но это и не нужно — надо просто прочитать сообщение об ошибке, и исправить её.

Источник

Labdes

Долго бился с такой вот проблемкой. Вроде бы запрос на PDO абсолютно правильный, проверил много раз, а данные в базу не добавляются и ошибок нет. Использовал разные варианты оформления запроса. В моем случае надо было сделать INSERT данных в таблицу. Скрипт отрабатывает, никаких ошибок не выдает, но запись в таблице не появляется. Мистика. Так в чем же дело?? Для начала обратился к всемогущему гуглу за советом. Там конечно предлагались мудреные способы написания своего велосипеда по отлову финальной строки запроса, а также первым делом предлагалось включить специальный режим отображения ошибок: PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION. Т.е наше подключение должно было выглядеть следующим образом:

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

Е-мое. Да мой скрипт однако отправлял запросы к реальному работающему серверу у хостера! И само собой все мои тестовые бла-бла-бла успешно добавлялись в базу!

Дело в том что некоторые хостеры используют в качестве хоста localhost, а некоторые, как и было в моем случае определенный url адрес. У себя на локальной тестовой машине я завел все параметры, как и хостера, для облегчения последующей заливки базы к хостеру или наоборот для бекапа. Вся разница была только в строчке $host. Само собой, как только я у себя в конфиге поменял $host = ‘ххх.домен-хостера.ru’ на $host = ‘localhost то все заработало.

Источник

Читайте также:  Как настроить передачи для велосипедов
Оцените статью