Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
4 / 4 / 1
Регистрация: 05.10.2010
Сообщений: 426
MySQL

Ошибка при добавлении в базу данных

29.05.2013, 17:30. Показов 1590. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php include ("settings/connect.php");
 
if (isset($_POST['title'])) {$title = $_POST['title'];}
if (isset($_POST['meta_d'])) {$title = $_POST['meta_d'];}
if (isset($_POST['meta_k'])) {$title = $_POST['meta_k'];}
if (isset($_POST['date'])) {$title = $_POST['date'];}
if (isset($_POST['description'])) {$title = $_POST['description '];}
if (isset($_POST['text'])) {$title = $_POST['text'];}
if (isset($_POST['author'])) {$title = $_POST['author'];}
?>
 <?php 
 if (isset($title) && isset ($meta_d) && isset($meta_k) && isset($date) && isset($description) && isset($text) && isset ($author))
 {
$result = mysql_query ("INSERT INTO lessons (title,meta_d,meta_k,date,description,text,author) VALUES('$title','$meta_d','$meta_k,'$date','$description','$text','$author')"); 
 
if ($result == 'true') { echo "<p>Ваш урок принят</p>";}
else {echo"<p>не добавлен</p>";}
 
 }
 else
 {
     echo "<p>вы ввели не полную информацию</p>";
 }
 ?>

почему то пишет вы ввели не полную информацию
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2013, 17:30
Ответы с готовыми решениями:

Ошибка при добавлении в базу данных
При добавлении введенных в форму данных, выдает ошибку: You have an error in your SQL syntax; check the manual that corresponds to...

Ошибка при добавлении в базу
syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING $query =...

Fatal error при добавлении данных в базу mysql
Помогите разобраться что делаю не так, при добавлении значений в базу выскакивает ошибка Fatal error: Uncaught exception...

17
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
29.05.2013, 18:03
Цитата Сообщение от emin313 Посмотреть сообщение
PHP
1
if (isset($title) && isset ($meta_d) ...
откуда взятся переменной $meta_d?
0
4 / 4 / 1
Регистрация: 05.10.2010
Сообщений: 426
29.05.2013, 18:07  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
откуда взятся переменной $meta_d?
PHP я недавно учу и суть вопроса я неочень понял можно по подробней
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
29.05.2013, 18:13
Цитата Сообщение от crautcher Посмотреть сообщение
PHP
1
if (isset($title) && isset ($meta_d) ...
ну вот начинается условие с двух проверок (пока забудь, что есть другие), смотрим на первое условие
PHP
1
isset($title)
переменная $title появится при срабатывании
Цитата Сообщение от emin313 Посмотреть сообщение
PHP
1
if (isset($_POST['title'])) {$title = $_POST['title'];}
смотрим второе условие
PHP
1
isset ($meta_d)
где ты что-то присваиваешь к $meta_d?
0
4 / 4 / 1
Регистрация: 05.10.2010
Сообщений: 426
29.05.2013, 18:17  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
ну вот начинается условие с двух проверок (пока забудь, что есть другие), смотрим на первое условие
PHP
1
isset($title)
переменная $title появится при срабатывании

смотрим второе условие
PHP
1
isset ($meta_d)
где ты что-то присваиваешь к $meta_d?
честно говоря я незнаю делал по видео уроку попова у него в уроке почему то всё нормально а у меня не добовляет в базу и всё если есть проще можешь подсказать
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
29.05.2013, 18:21

Не по теме:

Делал? В смысле понял принцип как он сделал и написал свой вариант или тупо ctrl + c , ctrl + v ?

Про Попова забудь на будущее, он только плохому научит.
Цитата Сообщение от emin313 Посмотреть сообщение
PHP
1
2
if (isset($_POST['title'])) {$title = $_POST['title'];}
if (isset($_POST['meta_d'])) {$title = $_POST['meta_d'];}
просто расскажи мне что делают эти две строки и зачем
0
4 / 4 / 1
Регистрация: 05.10.2010
Сообщений: 426
29.05.2013, 18:23  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение

Не по теме:

Делал? В смысле понял принцип как он сделал и написал свой вариант или тупо ctrl + c , ctrl + v ?

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

просто расскажи что делают эти две строки мне и зачем
окей)) можно тогда литературу получше на будущее как разработчику php сайтов
это вроде как мето теги они по сути даже ненужны))
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
29.05.2013, 18:27
Ищи уроки php "СПЕЦИАЛИСТ", походу даже на ютубе есть. В твоем именно коде ошибка была ... найди отличие
PHP
1
2
3
if (isset($_POST['title'])) {$title = $_POST['title'];}
if (isset($_POST['meta_d'])) {$title = $_POST['meta_d'];}
...
и
PHP
1
2
3
if (isset($_POST['title'])) {$title = $_POST['title'];}
if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d'];}
...
0
4 / 4 / 1
Регистрация: 05.10.2010
Сообщений: 426
29.05.2013, 18:31  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
Ищи уроки php "СПЕЦИАЛИСТ", походу даже на ютубе есть. В твоем именно коде ошибка была ... найди отличие
PHP
1
2
3
if (isset($_POST['title'])) {$title = $_POST['title'];}
if (isset($_POST['meta_d'])) {$title = $_POST['meta_d'];}
...
и
PHP
1
2
3
if (isset($_POST['title'])) {$title = $_POST['title'];}
if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d'];}
...
огромное спасибо но теперь он пишет не добавлен почему то
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
29.05.2013, 18:38
Цитата Сообщение от emin313 Посмотреть сообщение
$result == 'true'
1.ое что за фраза 'true' ? Вот Попов вообще нуб, надо не текст, а тип данных истина/ложь
PHP
1
if ($result == TRUE) { echo "<p>Ваш урок принят</p>";}
2ое. все таблицы и поля берем в косые кавычки (под эскейпом)
PHP
1
$result = mysql_query ("INSERT INTO `lessons` (`title`,`meta_d`,`meta_k`,`date`,`description`,`text`,`author`) VALUES('$title','$meta_d','$meta_k,'$date','$description','$text','$author')");
3. добавляем защиту (к каждой переменной взятой из $_POST)
PHP
1
if (isset($_POST['title'])) { $title = mysql_real_escape_string($_POST['title']); }
4. если ошибка, то не плохо бы узнать в чем
PHP
1
else { echo"<p>не добавлен :</p>" , mysql_error(); }
а так вообще сам алгоритм тоже кривой
0
4 / 4 / 1
Регистрация: 05.10.2010
Сообщений: 426
29.05.2013, 18:43  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
1.ое что за фраза 'true' ? Вот Попов вообще нуб, надо не текст, а тип данных истина/ложь
PHP
1
if ($result == TRUE) { echo "<p>Ваш урок принят</p>";}
2ое. все таблицы и поля берем в косые кавычки (под эскейпом)
PHP
1
$result = mysql_query ("INSERT INTO `lessons` (`title`,`meta_d`,`meta_k`,`date`,`description`,`text`,`author`) VALUES('$title','$meta_d','$meta_k,'$date','$description','$text','$author')");
3. добавляем защиту (к каждой переменной взятой из $_POST)
PHP
1
if (isset($_POST['title'])) { $title = mysql_real_escape_string($_POST['title']); }
4. если ошибка, то не плохо бы узнать в чем
PHP
1
else { echo"<p>не добавлен :</p>" , mysql_error(); }
а так вообще сам алгоритм тоже кривой
3й пункт несовсем понял можно поподробней))
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
29.05.2013, 18:50
$_POST нам присылает юзер, а прислать он может что угодно, если ты к примеру ждешь его возраст (число), никто не запретит юзеру отправить например возраст написанный буквами. И это не говоря уже о намерении специально похакерить или положить твой сайт. Поэтому любые данные которые прибыли от юзера надо сделать безопастными для подачи их в базу данных. mysql сделал функцию mysql_real_escape_string() , которая подготовит данные, обезопасив их. Замени все присовения переменных из поста на защищенное присвоение через функцию mysql_real_escape_string

Добавлено через 1 минуту
Кроче говоря, так опасно:
PHP
1
$title = $_POST['title'];
а так защищенно:
PHP
1
$title = mysql_real_escape_string($_POST['title']);
Пока примите на веру, затем изучив основы пхп поймете сами
0
4 / 4 / 1
Регистрация: 05.10.2010
Сообщений: 426
29.05.2013, 18:57  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
$_POST нам присылает юзер, а прислать он может что угодно, если ты к примеру ждешь его возраст (число), никто не запретит юзеру отправить например возраст написанный буквами. И это не говоря уже о намерении специально похакерить или положить твой сайт. Поэтому любые данные которые прибыли от юзера надо сделать безопастными для подачи их в базу данных. mysql сделал функцию mysql_real_escape_string() , которая подготовит данные, обезопасив их. Замени все присовения переменных из поста на защищенное присвоение через функцию mysql_real_escape_string

Добавлено через 1 минуту
Кроче говоря, так опасно:
PHP
1
$title = $_POST['title'];
а так защищенно:
PHP
1
$title = mysql_real_escape_string($_POST['title']);
Пока примите на веру, затем изучив основы пхп поймете сами
понять немогу куда её вписывать вместо какой строчки...извините конечно за тупые вопросы просто ещё учусь((
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
29.05.2013, 18:59
да оберни ты каждое присвоение поста в функцию

Добавлено через 54 секунды
PHP
1
2
3
if (isset($_POST['title'])) { $title = mysql_real_escape_string( $_POST['title'] );}
if (isset($_POST['meta_d'])) {$meta_d = mysql_real_escape_string($_POST['meta_d'] );}
...
0
4 / 4 / 1
Регистрация: 05.10.2010
Сообщений: 426
29.05.2013, 19:11  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
да оберни ты каждое присвоение поста в функцию

Добавлено через 54 секунды
PHP
1
2
3
if (isset($_POST['title'])) { $title = mysql_real_escape_string( $_POST['title'] );}
if (isset($_POST['meta_d'])) {$meta_d = mysql_real_escape_string($_POST['meta_d'] );}
...
не добавлен :
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 '25.05.2013','11111111','111111111111111 1','11111111111')' at line 1

Добавлено через 4 минуты
Цитата Сообщение от emin313 Посмотреть сообщение
не добавлен :
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 '25.05.2013','11111111','111111111111111 1','11111111111')' at line 1
я так понял он невидит таблицы до даты ток в чём проблема тип у таблиц varchar

Добавлено через 2 минуты
Цитата Сообщение от emin313 Посмотреть сообщение
не добавлен :
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 '25.05.2013','11111111','111111111111111 1','11111111111')' at line 1

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


я так понял он невидит таблицы до даты ток в чём проблема тип у таблиц varchar
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php 
$db = mysql_connect ("localhost","emin313","12345");
mysql_select_db("phpsite",$db);
 
if (isset($_POST['title'])) { $title = mysql_real_escape_string( $_POST['title'] );}
if (isset($_POST['meta_d'])) {$meta_d = mysql_real_escape_string($_POST['meta_d'] );}
if (isset($_POST['meta_k'])) { $meta_k = mysql_real_escape_string( $_POST['meta_k'] );}
if (isset($_POST['date'])) {$date = mysql_real_escape_string($_POST['date'] );}
if (isset($_POST['description'])) {$description = mysql_real_escape_string($_POST['description'] );}
if (isset($_POST['text'])) {$text = mysql_real_escape_string($_POST['text'] );}
if (isset($_POST['author'])) {$author = mysql_real_escape_string($_POST['author'] );}
 
if (isset($title) && isset ($meta_d) && isset($meta_k) && isset($date) && isset($description) && isset($text) && isset ($author))
 {
$result = mysql_query ("INSERT INTO `lessons` (`title`,`meta_d`,`meta_k`,`date`,`description`,`text`,`author`) VALUES('$title','$meta_d','$meta_k,'$date','$description','$text','$author')"); 
 
if ($result == TRUE) { echo "<p>Ваш урок принят</p>";}
else { echo"<p>не добавлен :</p>" , mysql_error(); }
 
 }
 else
 {
     echo "<p>вы ввели не полную информацию</p>";
 }
 ?>
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
30.05.2013, 10:32
покажи структуры твоей таблицы
0
4 / 4 / 1
Регистрация: 05.10.2010
Сообщений: 426
30.05.2013, 21:16  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
покажи структуры твоей таблицы
id int(4) Да NULL auto_increment
title varchar(255) cp1251_general_ci Да NULL
meta_d varchar(255) cp1251_general_ci Да
meta_k varchar(255) cp1251_general_ci Да
date varchar(15) cp1251_general_ci Да NULL
description text cp1251_general_ci Да
text text cp1251_general_ci Да
author varchar(255) cp1251_general_ci Да
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
31.05.2013, 10:29
Цитата Сообщение от emin313 Посмотреть сообщение
'$meta_k,
не закрыта кавычка
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2013, 10:29
Помогаю со студенческими работами здесь

При добавлении через форму в базу данных, в таблицу products генерировал ID - у которого тип данных CHAR. (БФ1, БФ2.)
Есть бд имя которой my_db в ней есть таблица products, При добавлении через форму в базу данных, в таблицу products генерировал (т.е....

Ошибка при добавлении записи в базу через форму
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /home/u466134400/public_html/db1/scripts/connect.php:2 Stack...

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

Ошибка при добавлении данных в базу
Здравствуите, помогите пожалуйста у меня база студентов, я прописала код добавления данных в базу у меня ошибку выводит, что делать(

Ошибка при добавлении данных в базу
Здравствуйте) Интересует вопрос, по какой причине может возникнуть ошибка изображенная на скрине? Я с базами пока не очень дружу, только...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru