Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 1
Регистрация: 22.11.2012
Сообщений: 99

Метод передачи POST - Ошибка при добавление данных

16.05.2015, 10:33. Показов 2315. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, и снова я)
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 <?php
 
$dbhost = "localhost"; // Имя хоста БД
$dbusername = "Auto"; // Пользователь БД
$dbpass = "auto"; // Пароль к базе
$dbname = "auto"; // Имя базы
 
$dbconnect = mysql_connect ($dbhost, $dbusername, $dbpass); 
if (!$dbconnect) { echo ("Не могу подключиться к серверу базы данных!"); }
 
 $name = $_POST['name']; 
 $short_txt = $_POST['short_txt']; 
 $long_txt = $_POST['long_txt'];
 $image = $_POST['image'];
 $sql = 'INSERT INTO `news`(`name`, `short_txt`, `long_txt`, `image`) 
 VALUES('.$name.', '.$short_txt.', '.$long_txt.', '.$image.')';
// проверка
 if(!mysql_query($sql))
 {echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';} 
 else 
 {echo '<center><p><b>Данные добавлены!</b></p></center>';}
 ?>
Это сам обработчик

Это форма
Кликните здесь для просмотра всего текста
<form method="post" action="add.php">
Название новости: <input type="text" size="30" name="name">
Короткое название новости: <input type="text" size="30" name="short_txt">
Полное описание новости: <input type="text" size="45" name="long_txt">
Добавьте изображение: <input type="text" size="100" name="image">
<input type="submit" value="Добавить запись">
</form>


Это таблица у меня в бд.
Подключение происходит тоже верно.
Но постоянно происходит "Ошибка при добавление данных"
Где ошибся?? Не могу найти
Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2015, 10:33
Ответы с готовыми решениями:

при передачи данных методом POST не преобразует в верхний регистр
Прошу помощи в решении следующей проблемы: при передачи данных методом POST не преобразует в верхний регистр $familiya =...

Ошибка при передачи данных из формы
Всем привет! Пожалуйста, помогите решить задачу! У меня есть форма: &lt;FORM method='POST' action='test.asp' ID='Form1'&gt; &lt;INPUT...

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

28
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
16.05.2015, 10:42
Цитата Сообщение от хай Посмотреть сообщение
('.$name.', '.$short_txt.', '.$long_txt.', '.$image.')
должны быть в кавычках. И есть такая функция mysql_error(), которая возвращает ошибку.

и еще бд не выбрана
1
2 / 2 / 1
Регистрация: 22.11.2012
Сообщений: 99
16.05.2015, 10:44  [ТС]
А они разве не в кавычках?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
16.05.2015, 10:50
Цитата Сообщение от хай Посмотреть сообщение
А они разве не в кавычках?
нет.
добавь var_dump($sql); и увидишь
0
2 / 2 / 1
Регистрация: 22.11.2012
Сообщений: 99
16.05.2015, 11:15  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
должны быть в кавычках. И есть такая функция mysql_error(), которая возвращает ошибку.
И куда мне это записать?
PHP
1
2
 $sql = 'INSERT INTO `news`(`name`, `short_txt`, `long_txt`, `image`) 
 VALUES("'.$name.'", "'.$short_txt.'", "'.$long_txt.'", "'.$image.'")';
А запрос должен выглядеть так? С кавычками.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
16.05.2015, 11:24
Цитата Сообщение от хай Посмотреть сообщение
А запрос должен выглядеть так? С кавычками.
да
Цитата Сообщение от хай Посмотреть сообщение
И куда мне это записать?
очевидно туда же где выводится ошибка
0
2 / 2 / 1
Регистрация: 22.11.2012
Сообщений: 99
16.05.2015, 11:26  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
очевидно туда же где выводится ошибка
Синтаксически как?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
16.05.2015, 11:29
Цитата Сообщение от хай Посмотреть сообщение
Синтаксически как?
https://php.net/manual/ru/function.mysql-error.php
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
16.05.2015, 11:42
необходимо добавить кавычки

$sql = "INSERT INTO `news`(`name`, `short_txt`, `long_txt`, `image`) VALUES('$name', '$short_txt', '$long_txt', '$image')";
PHP
1
2
3
4
5
6
7
8
9
<?php
 
$var = 'q,';
 
echo $var;
 
$var = '\'q\',';
 
echo $var; ?>
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
16.05.2015, 11:45
Цитата Сообщение от хай Посмотреть сообщение
PHP
1
echo ("Не могу подключиться к серверу базы данных!");
Я бы еще вместо echo написал die или exit.
0
2 / 2 / 1
Регистрация: 22.11.2012
Сообщений: 99
16.05.2015, 11:58  [ТС]
tolimadokara
а что это такое?

Добавлено через 1 минуту
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Я бы еще вместо echo написал die или exit.
Да мне бы с добавлением разобраться, к базе он подключается
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
16.05.2015, 12:01

Не по теме:

Цитата Сообщение от хай
а что это такое?
да не важно. просто хотел показать как можно экранировать одинарные кавычки что бы в запросе они были как одинарные кавычки а не как кавычки которыми в PHP определяется содержимое строк.



Добавлено через 1 минуту
хай. Протестируйте этот скрипт

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
$dbhost = "localhost"; // Имя хоста БД
$dbusername = "Auto"; // Пользователь БД
$dbpass = "auto"; // Пароль к базе
$dbname = "auto"; // Имя базы
 
$dbconnect = mysql_connect ($dbhost, $dbusername, $dbpass); 
if (!$dbconnect) { exit ("Не могу подключиться к серверу базы данных!"); }
 
 $name = $_POST['name']; 
 $short_txt = $_POST['short_txt']; 
 $long_txt = $_POST['long_txt'];
 $image = $_POST['image'];
 $sql = "INSERT INTO `news`(`name`, `short_txt`, `long_txt`, `image`) VALUES('$name', '$short_txt', '$long_txt', '$image')";
// проверка
 if(!mysql_query($sql))
 {echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';} 
 else 
 {echo '<center><p><b>Данные добавлены!</b></p></center>';}
 ?>
должен работать.
0
2 / 2 / 1
Регистрация: 22.11.2012
Сообщений: 99
16.05.2015, 12:07  [ТС]
Цитата Сообщение от tolimadokara Посмотреть сообщение
должен работать.
Не работает, ругается на 16 строку, а она у меня
PHP
1
 VALUES('$name', '$short_txt', '$long_txt', '$image')';
Добавлено через 1 минуту
Цитата Сообщение от Jewbacabra Посмотреть сообщение
https://php.net/manual/ru/function.mysql-error.php
Мануалкой всегда тыкнуть можно. Взял бы, да и помог.
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
16.05.2015, 12:13
хай. Разместите здесь полный текст ошибки.

хай. Это должно быть в 15 строке а не в 16. Возможно у Вас есть в задании значения переменной $sql перевод строки. Уберите этот перевод строки. Все можно разместить одной строкой.
0
2 / 2 / 1
Регистрация: 22.11.2012
Сообщений: 99
16.05.2015, 12:17  [ТС]
Цитата Сообщение от tolimadokara Посмотреть сообщение
хай. Это должно быть в 15 строке а не в 16. Возможно у Вас есть в задании значения переменной $sql перевод строки. Уберите этот перевод строки. Все можно разместить одной строкой.
Разместил в одной, все равно не работает. Ошибка выводится моя, которую я разместил в echo
Ошибка при добавлении данных!
0
16.05.2015, 12:18

Не по теме:

Цитата Сообщение от хай Посмотреть сообщение
Мануалкой всегда тыкнуть можно.
Пользоваться мануалом и отлаживать программу это то, без чего не реально быть программистом.
Цитата Сообщение от хай Посмотреть сообщение
Взял бы, да и помог.
Ты не хочешь чтобы тебе помогли, иначе бы ты уже решил свою проблему. Единственное чего ты хочешь, это чтобы сделали твою работу за тебя.

0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
16.05.2015, 12:27
хай. Теперь выполните такой код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
$dbhost = "localhost"; // Имя хоста БД
$dbusername = "Auto"; // Пользователь БД
$dbpass = "auto"; // Пароль к базе
$dbname = "auto"; // Имя базы
 
$dbconnect = mysql_connect ($dbhost, $dbusername, $dbpass); 
if (!$dbconnect) { exit ("Не могу подключиться к серверу базы данных!"); }
 
 $name = addslashes($_POST['name']); 
 $short_txt = addslashes($_POST['short_txt']); 
 $long_txt = addslashes($_POST['long_txt']);
 $image = addslashes($_POST['image']);
 $sql = "INSERT INTO `news`(`name`, `short_txt`, `long_txt`, `image`) VALUES('$name', '$short_txt', '$long_txt', '$image')";
// проверка
 if(!mysql_query($sql))
 {echo '<center><p><b>Ошибка при добавлении данных! '.mysql_errno($dbconnect) . ": " . mysql_error($dbconnect) .'</b></p></center>';} 
 else 
 {echo '<center><p><b>Данные добавлены!</b></p></center>';}
 ?>
И скопируйте полностью все что выводится в браузер после "Ошибка при добавлении данных" и разместите здесь.

Можете так же выполнить этот запрос не посредственно в phpmyadmin

SQL
1
INSERT INTO `news`(`name`, `short_txt`, `long_txt`, `image`) VALUES('a', 'b', 'c', 'd');
и посмотреть на ошибки.

Возможно надо использовать http://php.net/manual/ru/function.addslashes.php
0
2 / 2 / 1
Регистрация: 22.11.2012
Сообщений: 99
16.05.2015, 12:35  [ТС]
.mysql_error(INSERT INTO `news`(`name`, `short_txt`, `long_txt`, `image`) VALUES(fghfgh, fhdhdf, fghdf, fgdhdf)) .
Возвращает это значение ошибки. Хотя в Phpmyadmin все работает.
то есть если выполнить такой запрос.

Добавлено через 33 секунды
Цитата Сообщение от tolimadokara Посмотреть сообщение
и посмотреть на ошибки.
Только что написал.
В mysql все выполняется и добавляется

Добавлено через 2 минуты
Цитата Сообщение от tolimadokara Посмотреть сообщение
И скопируйте полностью все что выводится в браузер после "Ошибка при добавлении данных" и разместите здесь.
1046: No database selected вот из твоего скрипта
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
16.05.2015, 12:47
Лучший ответ Сообщение было отмечено хай как решение

Решение

хай. теперь выполните вот такой №3 скрипт

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
$dbhost = "localhost"; // Имя хоста БД
$dbusername = "Auto"; // Пользователь БД
$dbpass = "auto"; // Пароль к базе
$dbname = "auto"; // Имя базы
 
$dbconnect = mysql_connect ($dbhost, $dbusername, $dbpass); 
mysql_select_db($dbname);
if (!$dbconnect) { exit ("Не могу подключиться к серверу базы данных!"); }
 
 $name = addslashes($_POST['name']); 
 $short_txt = addslashes($_POST['short_txt']); 
 $long_txt = addslashes($_POST['long_txt']);
 $image = addslashes($_POST['image']);
 $sql = "INSERT INTO `news`(`name`, `short_txt`, `long_txt`, `image`) VALUES('$name', '$short_txt', '$long_txt', '$image')";
// проверка
 if(!mysql_query($sql))
 {echo '<center><p><b>Ошибка при добавлении данных! '.mysql_errno($dbconnect) . ": " . mysql_error($dbconnect) .'</b></p></center>';} 
 else 
 {echo '<center><p><b>Данные добавлены!</b></p></center>';}
 ?>
теперь должно работать.

Не по теме:

функции mysql* устарели. можно использовать mysqli_* и pdo

http://php.net/manual/ru/book.mysqli.php

http://php.net/manual/ru/book.pdo.php

1
2 / 2 / 1
Регистрация: 22.11.2012
Сообщений: 99
16.05.2015, 12:52  [ТС]
Цитата Сообщение от tolimadokara Посмотреть сообщение
теперь должно работать.
СУПЕР!!!!!!!СПАСИБО!!!!!!!!!!НЕДЕЛЮ МУЧАЛСЯ)))))!!!!!!!!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.05.2015, 12:52
Помогаю со студенческими работами здесь

Ошибка при передачи данных между формами
Здравствуйте! Проблема такова: Есть две формы. Одна содержит таблицу(dataGridView) — Наименование товара, Цена, Количество. Вторая...

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

POST запрос после json передачи данных
Не могу понять, как мне одновременно сделать json передачу данных при нажатии на кнопку и передачу данных методом POST на страницу.... ...

Ошибка при передачи данных из другой формы, используя свойство 'родитель'
Помогите, пожалуйста! В теме &quot;Ответы на 7 самых частых вопроса по WinForms&quot; в пункте 2 расписан 5-й вариант передачи данных из другой...

Метод post, добавление div-ов
Заполняю div данными: $mark-&gt;GetID(); $mark-&gt;GetMark(); $mark-&gt;GetWheels($_POST); при каждом последующем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru