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

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

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

Author24 — интернет-сервис помощи студентам
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2013, 17:30
Ответы с готовыми решениями:

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

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

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

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

17
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
29.05.2013, 18:03 2
Цитата Сообщение от emin313 Посмотреть сообщение
PHP
1
if (isset($title) && isset ($meta_d) ...
откуда взятся переменной $meta_d?
0
4 / 4 / 1
Регистрация: 05.10.2010
Сообщений: 426
29.05.2013, 18:07  [ТС] 3
Цитата Сообщение от crautcher Посмотреть сообщение
откуда взятся переменной $meta_d?
PHP я недавно учу и суть вопроса я неочень понял можно по подробней
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
29.05.2013, 18:13 4
Цитата Сообщение от 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  [ТС] 5
Цитата Сообщение от crautcher Посмотреть сообщение
ну вот начинается условие с двух проверок (пока забудь, что есть другие), смотрим на первое условие
PHP
1
isset($title)
переменная $title появится при срабатывании

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

Не по теме:

Делал? В смысле понял принцип как он сделал и написал свой вариант или тупо 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  [ТС] 7
Цитата Сообщение от crautcher Посмотреть сообщение

Не по теме:

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

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

просто расскажи что делают эти две строки мне и зачем
окей)) можно тогда литературу получше на будущее как разработчику php сайтов
это вроде как мето теги они по сути даже ненужны))
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
29.05.2013, 18:27 8
Ищи уроки 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  [ТС] 9
Цитата Сообщение от 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
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
29.05.2013, 18:38 10
Цитата Сообщение от 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  [ТС] 11
Цитата Сообщение от 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
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
29.05.2013, 18:50 12
$_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  [ТС] 13
Цитата Сообщение от 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
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
29.05.2013, 18:59 14
да оберни ты каждое присвоение поста в функцию

Добавлено через 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  [ТС] 15
Цитата Сообщение от 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','1111111111111111','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','1111111111111111','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','1111111111111111','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
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
30.05.2013, 10:32 16
покажи структуры твоей таблицы
0
4 / 4 / 1
Регистрация: 05.10.2010
Сообщений: 426
30.05.2013, 21:16  [ТС] 17
Цитата Сообщение от 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
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
31.05.2013, 10:29 18
Цитата Сообщение от emin313 Посмотреть сообщение
'$meta_k,
не закрыта кавычка
0
31.05.2013, 10:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2013, 10:29
Помогаю со студенческими работами здесь

Ошибка при добавлении записи в базу через форму
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in...

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

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

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


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru