Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как правильно проверить что Insert в бд прошол нормально

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Максим21
Отправлено: 23 Сентября, 2010 - 15:43:52
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Извиняюсь за легкий вопрос!
Но как правильно все таки написать?
 
 Top
SAD Модератор
Отправлено: 23 Сентября, 2010 - 15:47:46
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




$q = mysql_query("INSERT.....");
if($q)
echo 'все гуд';
 
 Top
Максим21
Отправлено: 24 Сентября, 2010 - 18:50:26
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




SAD пишет:
$q = mysql_query("INSERT.....");
if($q)
echo 'все гуд';


Да так, не успев внести данные он сразу пишет гуд, потому мне и не понятно.
 
 Top
SAD Модератор
Отправлено: 24 Сентября, 2010 - 22:49:55
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Он не вносит или вносит пустые значения?
 
 Top
garvey
Отправлено: 25 Сентября, 2010 - 06:56:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010  
Откуда: Minsk


Помог: 3 раз(а)




mysql_insert_id();
Возвращает id записи, если она прошла успешно.
 
 Top
JustUserR
Отправлено: 25 Сентября, 2010 - 23:47:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Максим21 пишет:
Да так, не успев внести данные он сразу пишет гуд, потому мне и не понятно.
При осущественни подачи SQL-запросов которые не производят определенной выборки информации или показа состояний переменных так как SELECT или SHOW - функция mysql_query всегда будет возвращать истинное значение и для проверки успешности реализуемого запроса необходимо применять характеризующие его средства - в частности если имеется поле автоинкремента то возможен просмотр параметра таблицы хранящий его значение


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
zardoz
Отправлено: 26 Сентября, 2010 - 01:13:49
Post Id


Гость


Покинул форум
Сообщений всего: 100
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Со своей стороны, предложил бы более универсальную команду - mysql_affected_rows().
Она покажет как число вставленных строк (при INSERT), так и число обновленных строк при UPDATE. Возвращает "-1" при ошибке.

С уважением.

(Отредактировано автором: 26 Сентября, 2010 - 01:15:24)

 
 Top
JustUserR
Отправлено: 27 Сентября, 2010 - 00:54:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




zardoz пишет:
Со своей стороны, предложил бы более универсальную команду - mysql_affected_rows().
Предложенная вами функция mysql_affected_rows предоставляет информация по SQL-запросам содержащим операции изменения данных в таблице и в частности число прошедших модификацию строк - таким образом для унификации проверки правильности SQL-запросов в частности в собственном классе реализации работы с БД - возможно использовать гибридный подхов с применением данном функции и указанной выше методики одновременно


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
zardoz
Отправлено: 27 Сентября, 2010 - 23:58:30
Post Id


Гость


Покинул форум
Сообщений всего: 100
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Цитата:
mysql_affected_rows() возвращает количество рядов, затронутых последним INSERT, UPDATE, DELETE запросом к серверу, на который ссылается указатель link_identifier. Если ресурс не указан, функция использует последнее, успешное соединение, выполненное с помощью функции mysql_connect().
...
Если последний запрос был неудачным, функция вернёт -1.


JustUserR, вы думаете что может возникнуть ситуация когда mysql_affected_rows() не отработает ошибку, а mysql_insert_id() укажет на нее? Если нет, то зачем учитывать частный случай в контексте общего, создавая этот не нужный гибридный подход?

С уважением.
 
 Top
vlom
Отправлено: 26 Ноября, 2010 - 14:17:13
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




А почему бы не использовать вот такой запрос???
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.         $result = mysql_query("INSERT INTO table SET title='$title'") or die(mysql_error());
  4.                 if ($result == true) {
  5.                         echo "<p>Новая запись успешно добавлена</p>";
  6.                 } else echo "<p>Произошла ошибка при добавлении новой записи</p>";
  7. ?>
  8.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB