Jump to content
  • 0

Помогите с запросом


Abrak-a-dabrA
 Share

Question

Есть таблица с 3мя полями. Одно "num" - int, не auto increment, остальные, "title" и "content" - varchar.

Вывожу в textarea содержимое content, правлю и пытаюсь записать обратно.

Запрос такой

$sql = "INSERT INTO content(content) VALUES('".$_POST['edit']."')";

Пишет

Field 'num' doesn't have a default value

До этого поле num было auto increment.

Пробовал выполнить запрос

$sql = "INSERT INTO content(title,content) VALUES('','".$_POST['edit']."')";

Выполняется без ошибок, а результат какой был такой и остается.

Собственно требуется записать только отредактированное поле content, остальные не трогать.

Подскажите как записать отредактированное поле content ?!

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Ну давайте рассуждать логически... Поле num у вас не назначается автоматически и небось имеет первичный ключ. Вы пробуете использовать команду INSERT INTO (добавить строку) где указываете только содержание поля content, вот вам и выдает ошибку, что не возможно добавить в таблицу новую строку без указания значения поля num.

И еще если я правильно понял, вы хотите сделать обновление, а не запись новой строки... Тогда зачем вы используете INSERT INTO??? А не UPDATE, в случаи обновления у вас была бы sql команда типа:

UPDATE content SET content=$_POST['edit'] WHERE num=$num

Важны две вещи:

1) условие WHERE мы же не во всех строках обновляем содержимое а только в одной какой-то и если у вас num имеет уникальный индекс то можно делать условие обновления по нему в противном случаи нужно завести еще одно поле в таблице...

2) нельзя в базу записывать информацию из POST ибо туда могут записать SLQ инъекции и конец тогда вашему сайту...

Link to comment
Share on other sites

  • 0

За помощь спасибо...

Возникло еще пара вопросов...

2) нельзя в базу записывать информацию из POST ибо туда могут записать SLQ инъекции и конец тогда вашему сайту...

1) А GETом нельзя записать SQL инъекцию ?

2) Быть может можно как то проверить данные передаваемые через POST (или GET) перед записью в БД ?!

Link to comment
Share on other sites

  • 0

1) А GETом нельзя записать SQL инъекцию ?

2) Быть может можно как то проверить данные передаваемые через POST (или GET) перед записью в БД ?!

1. имеется ввиду, что нельзя записывать не проверенную информацию.

2. не можно, а нужно. mysql_real_escape_string()

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy