(PHP+MySQL) Не работает INSERT

McLighter
Дата: 26.07.2006 16:38:04
У меня php5 mysql5
Есть следующий скрипт, что в нем нето понять никак не могу.
НО данные в базу не добавляются.
<?
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>
<?
}

?>
4m@t!c
Дата: 26.07.2006 16:47:10
mysql_error() что говорит?
----------------------------------------
Артисты не приехали, приехали цыгане
+
Дата: 26.07.2006 17:59:04
еще не мешало бы запрос правильно составить
$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);
McLighter
Дата: 27.07.2006 09:22:48
Если написать вместо строки
mysql_query("INSERT INTO device values ('', '$_GET[devname]', '$_GET[description]' , '$_GET[provide]' , '$_GET[characteristic]')");

Строку
mysql_query("INSERT INTO device values ('10', '$_GET[devname]', '$_GET[description]' , '$_GET[provide]' , '$_GET[characteristic]')");


То все нормально, т.е. автоинкремент не работает. Хотя в нужном поле в таблице он отмечен.
4m@t!c
Дата: 27.07.2006 10:29:44
Вот привычка огрызками информацию выводить и не слушать, что вас просят сделать. Если бы вы в самом начале сказали о структуре, а так же сделали, что вас попросили участники треда вы бы сейчас уже решили проблему, а так "те же яйца - только вид сбоку" показываете.
----------------------------------------
Артисты не приехали, приехали цыгане
McLighter
Дата: 27.07.2006 12:23:05
Куда я должен вставить mysql_error() и что это такое ?!!
У меня всегда данные вставлялись нормально тем методом как я написал.
Причина в том что раньше у меня был mysql 4
Alexey Lapusta
Дата: 27.07.2006 14:10:10
А php.net уже не рулит? Там в комментариях и примеры хорошие всегда есть.
maXmo
Дата: 27.07.2006 14:12:33
McLighter
То все нормально, т.е. автоинкремент не работает. Хотя в нужном поле в таблице он отмечен.
Я так понимаю, раз всё нормально, то вопрос снят?
+
Дата: 27.07.2006 14:55:16
McLighter
Куда я должен вставить mysql_error() и что это такое ?!!

Афигеть!
Lepaj
Дата: 27.07.2006 15:54:45
McLighter
Если написать вместо строки
mysql_query("INSERT INTO device values ('', '$_GET[devname]', '$_GET[description]' , '$_GET[provide]' , '$_GET[characteristic]')");

Строку
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 сам вставит в него значение... ;)