Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP+MySQL) Не работает INSERT / 21 сообщений из 21, страница 1 из 1
26.07.2006, 16:38:04
    #33880240
McLighter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
У меня php5 mysql5
Есть следующий скрипт, что в нем нето понять никак не могу.
НО данные в базу не добавляются.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<?
if (isset($_GET[send]))
{
$id=mysql_connect("localhost","root","root");
mysql_select_db("rio");
echo "OK";
mysql_query("INSERT INTO device values ('', '$_GET[devname]', '$_GET[description]' , '$_GET[provide]' , '$_GET[characteristic]')");
mysql_close($id);
//$topic_name=mysql_fetch_row($t1);
}
else
{
?>
<form action='add.php'>
Название </br><input type='text' name='devname'></br>
Описание </br><textarea cols= 50  rows= 5  name='description'></textarea><br>
Обеспечивает </br><textarea cols= 50  rows= 5  name='provide'></textarea><br>
Характеристики</br><textarea cols= 50  rows= 5  name='characteristic'></textarea><br>
<input type='submit' name='send' value="Добавить">
</form>
<?
}

?>
...
Рейтинг: 0 / 0
26.07.2006, 16:47:10
    #33880276
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
mysql_error() что говорит?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
26.07.2006, 17:59:04
    #33880538
+
+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
еще не мешало бы запрос правильно составить
Код: plaintext
1.
2.
3.
4.
5.
6.
$query = "INSERT INTO device values ('', '".mysql_real_escape_string($_GET[devname])."', '".
 mysql_real_escape_string($_GET[description])."', '".
 mysql_real_escape_string($_GET[provide])."', '".
 mysql_real_escape_string($_GET[characteristic])."')";

mysql_query($query);
...
Рейтинг: 0 / 0
27.07.2006, 09:22:48
    #33881188
McLighter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
Если написать вместо строки
Код: plaintext
1.
2.
mysql_query("INSERT INTO device values ('', '$_GET[devname]', '$_GET[description]' , '$_GET[provide]' , '$_GET[characteristic]')");

Строку
Код: plaintext
1.
2.
mysql_query("INSERT INTO device values ('10', '$_GET[devname]', '$_GET[description]' , '$_GET[provide]' , '$_GET[characteristic]')");


То все нормально, т.е. автоинкремент не работает. Хотя в нужном поле в таблице он отмечен.
...
Рейтинг: 0 / 0
27.07.2006, 10:29:44
    #33881367
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
Вот привычка огрызками информацию выводить и не слушать, что вас просят сделать. Если бы вы в самом начале сказали о структуре, а так же сделали, что вас попросили участники треда вы бы сейчас уже решили проблему, а так "те же яйца - только вид сбоку" показываете.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
27.07.2006, 12:23:05
    #33881834
McLighter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
Куда я должен вставить mysql_error() и что это такое ?!!
У меня всегда данные вставлялись нормально тем методом как я написал.
Причина в том что раньше у меня был mysql 4
...
Рейтинг: 0 / 0
27.07.2006, 14:10:10
    #33882255
Alexey Lapusta
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
А php.net уже не рулит? Там в комментариях и примеры хорошие всегда есть.
...
Рейтинг: 0 / 0
27.07.2006, 14:12:33
    #33882267
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
McLighterТо все нормально, т.е. автоинкремент не работает. Хотя в нужном поле в таблице он отмечен.Я так понимаю, раз всё нормально, то вопрос снят?
...
Рейтинг: 0 / 0
27.07.2006, 14:55:16
    #33882431
+
+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
McLighterКуда я должен вставить mysql_error() и что это такое ?!!
Афигеть!
...
Рейтинг: 0 / 0
27.07.2006, 15:54:45
    #33882636
Lepaj
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
McLighterЕсли написать вместо строки
Код: plaintext
1.
2.
mysql_query("INSERT INTO device values ('', '$_GET[devname]', '$_GET[description]' , '$_GET[provide]' , '$_GET[characteristic]')");

Строку
Код: plaintext
1.
2.
mysql_query("INSERT INTO device values ('10', '$_GET[devname]', '$_GET[description]' , '$_GET[provide]' , '$_GET[characteristic]')");


То все нормально, т.е. автоинкремент не работает. Хотя в нужном поле в таблице он отмечен.

Поле инкримента скорее всего описано как целочисленное, а в запросе ты пытаешся пустую строку засунуть...

mysql_query("INSERT INTO device ( devname, description, provide, characteristic) values ( '$_GET[devname]', '$_GET[description]' , '$_GET[provide]' , '$_GET[characteristic]')");

Вот примерно такой вариант, поле инкримента не упоменается, MySQL сам вставит в него значение... ;)
...
Рейтинг: 0 / 0
27.07.2006, 16:43:30
    #33882833
McLighter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
авторLepaj

Спасибо, то что надо!
Теперь все работает.
Поле у меня было int(11).
...
Рейтинг: 0 / 0
27.07.2006, 17:20:54
    #33882982
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
Ещё можно в качестве значения автоинкрементного поля указать null или 0, но это, вроде, мусклеспецифично.
...
Рейтинг: 0 / 0
27.07.2006, 17:34:41
    #33883041
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
0 - нельзя. NULL - можно и нужно. А тредстартеру я бы посоветовал читать ман. Там все отлично написано, как нужно работать с автоинкрементым полем. А так же прочесть, что такое mysql_error()
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
27.07.2006, 18:14:27
    #33883192
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
у меня ноль прокатил, ещё default можно.
...
Рейтинг: 0 / 0
27.07.2006, 18:27:24
    #33883248
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
0 прокатит 1 раз. После этого 0 будет неуникальным.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
28.07.2006, 15:10:04
    #33885515
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
вместо нуля вставилось следующее значение инкремента.
Код: plaintext
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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
mysql> select * from zz1 order by id;
+----+-------+----------------+------------+---------------------+------+
| id | fbool | fstr           | fdate      | fdt                 | fint |
+----+-------+----------------+------------+---------------------+------+
|  7 |     1 | NULL           | 2006-06-13 | 2006-06-13 18:05:49 |  180 |
|  8 |     1 | aaa            | 2006-06-14 | 2006-06-14 14:49:04 |  180 |
|  9 |     1 |                | 2006-06-14 | 2006-06-14 14:52:05 |  180 |
| 17 |     1 | NULL           | NULL       | NULL                | NULL |
| 18 |     1 | NULL           | NULL       | NULL                | NULL |
+----+-------+----------------+------------+---------------------+------+
5 rows in set (0.00 sec)

mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)

mysql> insert into zz1 values(0,NULL,'yoyo',null,null,null);
Query OK, 1 row affected (0.00 sec)

mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
|               19 |
+------------------+
1 row in set (0.00 sec)

mysql> select * from zz1 where fstr='yoyo';
+----+-------+------+-------+------+------+
| id | fbool | fstr | fdate | fdt  | fint |
+----+-------+------+-------+------+------+
| 19 |  NULL | yoyo | NULL  | NULL | NULL |
+----+-------+------+-------+------+------+
1 row in set (0.00 sec)
...
Рейтинг: 0 / 0
28.07.2006, 16:09:31
    #33885791
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
maXmo , ну, хоть вы не тупите!
manual
NO_AUTO_VALUE_ON_ZERO

NO_AUTO_VALUE_ON_ZERO affects handling of AUTO_INCREMENT columns. Normally, you generate the next sequence number for the column by inserting either NULL or 0 into it. NO_AUTO_VALUE_ON_ZERO suppresses this behavior for 0 so that only NULL generates the next sequence number.

This mode can be useful if 0 has been stored in a table's AUTO_INCREMENT column. (This is not a recommended practice, by the way.) For example, if you dump the table with mysqldump and then reload it, MySQL normally generates new sequence numbers when it encounters the 0 values, resulting in a table with different contents than the one that was dumped. Enabling NO_AUTO_VALUE_ON_ZERO before reloading the dump file solves this problem. mysqldump automatically includes in its output a statement enabling NO_AUTO_VALUE_ON_ZERO.
Идеологически правильно использовать NULL, потому что тогда вставка будет работать без ошибок при любых настройка MySQL. Плюс 0 - это натуральное целое число, которое стоИт в одном ряду с другими натуральными целыми числами, исполоьзующимися в определении автоинкремента. NULL таковым не является.
Хотите использовать 0 - не вопрос, только готовьтесь к граблям при размещении приложения на серверах с разными настройками.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
28.07.2006, 16:17:30
    #33885839
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
только ноль - это всё-таки не натуральное число.
...
Рейтинг: 0 / 0
28.07.2006, 17:13:10
    #33886059
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
Есть два лагеря - одни считают ноль натуральным числом, другие нет. Смысл поста был не в этом.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
02.04.2012, 23:08:09
    #37735454
Cyclone
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
Извиняюсь за оживление древней темы, но чтобы не плодить одинаковые - отпишусь здесь же, т.к проблема та же.

Поставил пятый мускул, и получаю Incorrect integer value, для цифрового auto increment поля, причем запросы например такого плана -

i
Код: php
1.
d   name   text   ==========   SET name='Имя1', text='Текст1'

Не прокатывает, Мускул сам ничего теперь не подставляет, а просто извещает об ошибке. Можно ли в настройках мускуля подкрутить, чтобы нормально сам заполнял авто инкримент, если туда ничего не передается? Т.е как в четверке было по умолчанию...
...
Рейтинг: 0 / 0
02.04.2012, 23:57:09
    #37735486
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP+MySQL) Не работает INSERT
Cyclone,

Объясните, каким боком в Вашем вопросе замешан PHP? Да и некропостить как то тут не принято - это к сведению.

Вообще то, мускуль и так заполняет автоинкрементное поле когда оно не задано в тексте запроса. Если же в Вашем случае это не так, тогда соберите в одном сообщении структуру таблицы (show create table), полный текст проблемного запроса, сообщение об ошибке и откройте топик на форуме по MySQL.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP+MySQL) Не работает INSERT / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]