[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с обращением к базе
Artashat
Буду очень признателен всем, кто поможет разобраться. Столкнулся со следующей проблемой.

Сделал простенькую админку на вставку статей в базу. Все работает, когда в таблице базы всего два столбца, запрос выглядит так:

mysql_query("INSERT INTO `test` VALUES(null, '".$_REQUEST['text']."');");

А вот когда в таблице 3 и более столбца, то тут начинаются проблемы. Что я не пробовал, ничего не помагает.

Вот к примеру, что я пишу:
mysql_query("INSERT INTO `test` VALUES(null, '".$_REQUEST['text']."','0');");

Запись просто не добавляется в базу и все.

Смотрел справочник, но так и не смог добавить информацию в нужные мне столбцы.

Помогите, плиз!



Спустя 53 минуты, 50 секунд (4.03.2010 - 23:48) phz написал(а):
Вот к примеру я создаю таблицу:


CREATE TABLE IF NOT EXISTS `test` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`pass` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


Потом в неё вставляю запись:


$sql = mysql_query("INSERT `test` SET
`name` = '"
.$_POST['name']."',
`pass` = '"
.$_POST['pass']."'
"
) or die(mysql_error() ."<br/>". $sql);;


Проверяй данные которые ты вносишь в таблицу (читай тут http://phpforum.ru/index.php?showtopic=21213 - много интересного), к примеру:

       
$sql = mysql_query("INSERT `test` SET
`name` = '"
.mysql_real_escape_string($_POST['name'])."',
`pass` = '"
.mysql_real_escape_string($_POST['pass'])."'
"
) or die(mysql_error() ."<br/>". $sql);;


И почитай http://php.inkz.ru/ - лучше не видел

Спустя 21 минута, 54 секунды (5.03.2010 - 00:10) Artashat написал(а):
phz спасибо, очень познавательно.

Но мне интересно, почему моя команда на вставку не работает? Ведь это самое элементарное. Например, я хочу чтобы заполнялись строго определенные столбцы.

mysql_query("INSERT INTO `test` VALUES(null, '".$_REQUEST['text']."','0');");

Где я допустил ошибку, не пойму.

Спустя 7 минут, 44 секунды (5.03.2010 - 00:18) phz написал(а):
Покажи свою таблицу, хрен его знает так гадать куда данные летят и в какие поля и почему не записываются

Спустя 6 минут, 12 секунд (5.03.2010 - 00:24) phz написал(а):
Вот смотри на этот код и на свой (нужно указывать поля куда зан. инфу):

INSERT INTO `test` (
`id` ,
`name` ,
`pass`
)
VALUES (
NULL ,
'пиво',
'хватит'
);


Код на форуме оформ. в спец. теги

Спустя 4 минуты, 52 секунды (5.03.2010 - 00:29) phz написал(а):
Я думаю ты знаешь что такое phpMyAdmin. Создай там таблицу и там есть кнопка вставить. Нажми и заноси прям в phpMyAdmin запись и жми ок. И запись добавится и покажет тебе SQL-код. Хороший наглядный пример для учёбы.

Спустя 5 минут, 7 секунд (5.03.2010 - 00:34) Guest написал(а):
phz спасибО!!! Вы мне помогли!

Спустя 18 секунд (5.03.2010 - 00:34) Artashat написал(а):
Guest

Спустя 1 минута, 19 секунд (5.03.2010 - 00:36) Artashat написал(а):
phz спасибО!!! как я не додумался посмотреть код в самой базе на вставку))

Спустя 12 секунд (5.03.2010 - 00:36) Guest написал(а):
все работает теперь))

Спустя 10 минут, 42 секунды (5.03.2010 - 00:47) Artashat написал(а):
rolleyes.gif Рано я радоваться начал((
Все равно не добавляются..

Вот код.

<tr>

<td align="center"><strong>Добавить test.php</strong></td>

</tr>

<tr>

<td align="center"><a href="admin_serg.php">на главную админ</a></td>

</tr>

<tr>

<td align="center"><form method="post" action="admin_serg.php?name=test&amp;mode=add" enctype="multipart/form-data">

<table cellpadding="5" cellspacing="2">

<? if (isset($_REQUEST['mode'])) {

mysql_query("INSERT INTO `test` VALUES(null, '".$_REQUEST['text']."', '') ;");

$result = mysql_query("SELECT `id` FROM `test` ;");



?>

<tr>

<td height="100" colspan="2">test.php?id=<?=mysql_num_rows($result);?></td>

</tr>

<? } ?>

<tr>

<td width="95">Отчет:</td>

<td width="81%"><textarea name="text" cols="50" rows="20"></textarea></td>

</tr>

<tr>

<td colspan="2" align="center"><input type="submit" value="Добавить" /></td>

</tr>

</table>

</form>

</td>

</tr>

Спустя 1 минута, 43 секунды (5.03.2010 - 00:48) Adil написал(а):

mysql_query("INSERT INTO `test` VALUES(null, '".$_REQUEST['text']."', '') ;") or die(mysql_error());
mysql_query("SELECT `id` FROM `test` ;") or die(mysql_error());


Спустя 5 минут, 49 секунд (5.03.2010 - 00:54) Artashat написал(а):
Тоже не помогло.

А почему для 2 столбцов работает, а для трех не хочет?

Спустя 1 минута, 19 секунд (5.03.2010 - 00:55) Adil написал(а):
что не помогло? Ошибку выдало какую-нибудь?

Спустя 5 минут, 4 секунды (5.03.2010 - 01:00) Artashat написал(а):
Нет, ошибку не выдало. Как обычно появилась запись информационная запись о последней добавленной записи "test.php?id=6" (эти 6 статей я добавлял не через админку).

Я чего только не пробовал. Перечислял даже просто для всех столбцов значения типо
mysql_query("INSERT INTO `test` (`id` , `name` , `info`) VALUES (NULL , 'один', 'два'); ");

Не работает.

Спустя 2 минуты, 1 секунда (5.03.2010 - 01:02) Artashat написал(а):
А вот эта команда проходит на ура, и все добавляется

mysql_query("INSERT INTO `test` (`id` , `name`) VALUES (NULL , 'один'); ");

Но третий столбец надо совсем удалить из таблицы базы, чтобы осталось два.

Спустя 1 час, 28 минут, 41 секунда (5.03.2010 - 02:31) inpost написал(а):
Пиши в стиле
SET
`name` = '".mysql_real_escape_string($_POST['name'])."',
`pass` = '".mysql_real_escape_string($_POST['pass'])."'


Так будет намного удобнее в будущем работать, чем через VALUES
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.