X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Ошибка в запросе
yuriy_hb
yuriy_hb
Topic Starter сообщение 30.9.2011, 12:44; Ответить: yuriy_hb
Сообщение #1


Подскажите, пожалуйста, где ошибка в таком вот запросе (использую PDO)
[PHP]
# Данные, которые надо вставить
$data = array( 'name' => 'Мишель', 'addr' => 'переулок Кузнечный', 'city' => 'Cnjkbwf', 'price' => '300' );
$STH = $DBH->("INSERT INTO items (name, colors, price, count) VALUES (:name, :addr, :city, :price)");
$STH->execute($data);
[/PHP]

Выдает синтаксическую ошибку:
Parse error: syntax error, unexpected '(', expecting T_STRING or T_VARIABLE or '{' or '$' in Z:\home\test\www\pdo.php on line 34
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 30.9.2011, 12:58; Ответить: Mulder_hb
Сообщение #2


(yuriy1976 @ 30.9.2011, 15:44) *
$STH = $DBH->("INSERT INTO items (name, colors, price, count) VALUES (:name, :addr, :city, :price)");

Это что такое? Где метод?
(yuriy1976 @ 30.9.2011, 15:44) *
$data = array( 'name' => 'Мишель', 'addr' => 'переулок Кузнечный', 'city' => 'Cnjkbwf', 'price' => '300' );

Почему имена ключей не совпадают с именами заполнителей в запросе?
Должно быть:
[PHP]$data = array( ':name' => 'Мишель', ':addr' => 'переулок Кузнечный', ':city' => 'Cnjkbwf', ':price' => 300);
$STH = $DBH->prepare("INSERT INTO items (name, colors, price, count) VALUES (:name, :addr, :city, :price)");
$STH->execute($data);[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yuriy_hb
yuriy_hb
Topic Starter сообщение 30.9.2011, 13:13; Ответить: yuriy_hb
Сообщение #3


Опечатка была в статье...))) Кстати а если мне нужно вставить несколько строк, как я должен указать в массиве? даный масив:
[PHP]
$data = array( ':name' => 'Мишель', ':addr' => 'переулок Кузнечный', ':city' => 'Cnjkbwf', ':price' => 300);
[/PHP]
втавляет только одну строку!!! Продолжать массив или создавать уже двумерный массив и пробегаться по нему...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 30.9.2011, 16:52; Ответить: Mulder_hb
Сообщение #4


Можно и двумерным. Как-то так:
[PHP]$data = array(
array(
':name' => 'Мишель',
':addr' => 'переулок Кузнечный',
':city' => 'Гомель',
':price' => 300,
),
array(
':name' => 'Лявон',
':addr' => 'переулок Кузнечный',
':city' => 'Витебск',
':price' => 300,
),
);
$STH = $DBH->prepare("INSERT INTO items (name, colors, price, count) VALUES (:name, :addr, :city, :price)");
foreach ($data as $value) {
$STH->execute($value);
}[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
evgenijj
evgenijj
сообщение 1.10.2011, 0:48; Ответить: evgenijj
Сообщение #5


Дело темное, как там работает PDO, но вполне возможно, что дело в том, что используется ключевое слово COUNT в качестве имени поля таблицы БД
INSERT INTO items (name, colors, price, count) VALUES (:name, :addr, :city, :price)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yuriy_hb
yuriy_hb
Topic Starter сообщение 1.10.2011, 16:44; Ответить: yuriy_hb
Сообщение #6


А подскажите пожалуйста. как же происходит экранирования даных когда польователь вводит в поля формы? раньше экранировали с помощью функции mysql_real_escape_string и тому подобных, а теперь какая фун-ция отвечает за экранирования (фильтрацию) введенных даных?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 3.10.2011, 11:12; Ответить: Mulder_hb
Сообщение #7


Все экранирование pdo делает сам, за кулисами. Главное - использовать параметризированные запросы.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Каталог открывается как ошибка 404 в hostcms
0 cheshire 3269 2.7.2018, 11:09
автор: cheshire
Открытая тема (нет новых ответов) Учусь создавать шаблон для Joomla 2.5 Ошибка в файле index.php
3 Musicathome 6646 26.7.2013, 20:20
автор: -Сабж-
Открытая тема (нет новых ответов) Редирект, установка консультации на сайт и ошибка в коде
2 samgul 4090 27.2.2013, 17:22
автор: -HTMLandPHP-
Открытая тема (нет новых ответов) Помогите, в чём ошибка?
0 atamvova 4947 14.2.2013, 21:11
автор: -atamvova-
Открытая тема (нет новых ответов) Ошибка при переходе на сайт!
1 Steve_Fox 2844 9.10.2012, 18:34
автор: -Blink-


 



RSS Текстовая версия Сейчас: 19.4.2024, 19:09
Дизайн