Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инфа не добавляется в базу 
:(
    Опции темы
GQU
Дата 4.6.2011, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 13.2.2011

Репутация: нет
Всего: нет



mysql_form.php
Код

<html>
<form action="mysql_insert.php" method="POST" name="form">
<p>Введите имя сотрудника:<br><input type='text' name='name' size='20' maxlength='40'></p>
<p>Введите фамилию:<br><input type='text' name='lastname' size='20' maxlength='40'></p>
<p>Должность:<br><input type='text' name='dol' size='20' maxlength='40'></p>
<p><input type='submit' name='submit' value='Занести нового сотрудника в базу'></p>
</form>
</html>

mysql_insert.php
Код

<?php
$link=mysql_connect("localhost","root","");
mysql_select_db("first_db",$link);
if(isset($_POST['name']))
$name=$_POST['name'];
if(isset($_POST['lastname']))
$lastname=$_POST['lastname'];
if(isset($_POST['dol']))
$dol=$_POST['dol'];
$res=mysql_query("INSERT INTO firma(name,lastname,dol) VALUES ($name,$lastname,$dol)", $link);         
if(!$res)
echo "Информация в базу не добавлена";
else
echo "Информация в базу добавлена";
 
?>   


Отв:
Информация в базу не добавлена

Почему инфа в базу не добавляется?
PM MAIL   Вверх
нуп
Дата 4.6.2011, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



Строки надо в кавычках добавлять
PM MAIL   Вверх
GQU
Дата 4.6.2011, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 13.2.2011

Репутация: нет
Всего: нет



 smile 
PM MAIL   Вверх
mark2011
Дата 9.7.2011, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 28.6.2011

Репутация: нет
Всего: 2



GQU, 
Немножко рефакторю ваш код с вашего позволения smile

Код

<?php
$link=mysql_connect("localhost","root","");

mysql_select_db("first_db",$link);

$name = isset($_POST['name']) ? trim(strip_tags($_POST['name'])) : '';
$lastname = isset($_POST['lastname']) ? trim(strip_tags($_POST['lastname'])) : '';
$lastname=trim(strip_tags($_POST['lastname']));
$dol = isset($_POST['dol']) ? $_POST['dol'] : '0';

$res=mysql_query("INSERT INTO firma(name,lastname,dol) VALUES ('".$name."', '".$lastname."', '".$dol."')", $link);         

if(!$res)
{
            echo "Информация в базу не добавлена";
}
else
{
            echo "Информация в базу добавлена";
}
 
?>   


Поясню исправления. У вас не была обработана ситуация если бы переменные не были определены. А в базу инфа добавлялась в любом случае. Соответственно, если бы я в форму ничего не ввёл и нажал бы на кнопку "Добавить" то произошла бы очень неприятная вещь, как минимум - ошибка запроса. При помощи тернарных операторов я добиваюсь того, что эти переменные в любом случае будут определены, либо значениями из $_POST либо пустой строкой. Но ошибки базы уже никогда не возникнет в таком случае.

По функциям. Если не использовать trim() тогда я введу в форму 100 пробелов и они добавятся в базу, вам оно надо? strip_tags - убирает все html-теги. Понятное дело, паранойя, но паранойя в хорошем плане. Ещё неплохо бы stripslashes применить, но это уже надо смотреть на конфигурацию magic_quotes_gpc.

Вот как-то так smile

Это сообщение отредактировал(а) mark2011 - 9.7.2011, 08:20
PM WWW ICQ Skype   Вверх
srt
Дата 9.7.2011, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.5.2008

Репутация: 1
Всего: 1



mark2011, а зачем добавлять пустую строку, помоему можно добавить проверку на наличие ключевой информации
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.5096 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.