powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP+MySQL) Не работает INSERT
21 сообщений из 21, страница 1 из 1
(PHP+MySQL) Не работает INSERT
    #33880240
McLighter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня 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
(PHP+MySQL) Не работает INSERT
    #33880276
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mysql_error() что говорит?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33880538
+
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+
Гость
еще не мешало бы запрос правильно составить
Код: 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
(PHP+MySQL) Не работает INSERT
    #33881188
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]')");


То все нормально, т.е. автоинкремент не работает. Хотя в нужном поле в таблице он отмечен.
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33881367
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот привычка огрызками информацию выводить и не слушать, что вас просят сделать. Если бы вы в самом начале сказали о структуре, а так же сделали, что вас попросили участники треда вы бы сейчас уже решили проблему, а так "те же яйца - только вид сбоку" показываете.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33881834
McLighter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Куда я должен вставить mysql_error() и что это такое ?!!
У меня всегда данные вставлялись нормально тем методом как я написал.
Причина в том что раньше у меня был mysql 4
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33882255
Alexey Lapusta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А php.net уже не рулит? Там в комментариях и примеры хорошие всегда есть.
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33882267
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
McLighterТо все нормально, т.е. автоинкремент не работает. Хотя в нужном поле в таблице он отмечен.Я так понимаю, раз всё нормально, то вопрос снят?
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33882431
+
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+
Гость
McLighterКуда я должен вставить mysql_error() и что это такое ?!!
Афигеть!
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33882636
Lepaj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
(PHP+MySQL) Не работает INSERT
    #33882833
McLighter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторLepaj

Спасибо, то что надо!
Теперь все работает.
Поле у меня было int(11).
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33882982
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё можно в качестве значения автоинкрементного поля указать null или 0, но это, вроде, мусклеспецифично.
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33883041
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0 - нельзя. NULL - можно и нужно. А тредстартеру я бы посоветовал читать ман. Там все отлично написано, как нужно работать с автоинкрементым полем. А так же прочесть, что такое mysql_error()
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33883192
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня ноль прокатил, ещё default можно.
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33883248
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0 прокатит 1 раз. После этого 0 будет неуникальным.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33885515
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вместо нуля вставилось следующее значение инкремента.
Код: 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
(PHP+MySQL) Не работает INSERT
    #33885791
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
(PHP+MySQL) Не работает INSERT
    #33885839
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только ноль - это всё-таки не натуральное число.
...
Рейтинг: 0 / 0
(PHP+MySQL) Не работает INSERT
    #33886059
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть два лагеря - одни считают ноль натуральным числом, другие нет. Смысл поста был не в этом.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
(PHP+MySQL) Не работает INSERT
    #37735454
Cyclone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь за оживление древней темы, но чтобы не плодить одинаковые - отпишусь здесь же, т.к проблема та же.

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

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

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

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

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


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