PDA

Просмотр полной версии : Проблема с запросом UPDATE в базу на PHP


Hulio
18.10.2009, 01:01
Пытаюсь сделать запрос в базу:

$test = mysql_query("UPDATE testbase SET number = '555' WHERE id='1'") or die (mysql_error($test));

Выходит сообщение: Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in <..... путь к файлу.... >

Вот сам код

Подключаемся к базе

$conn = mysql_connect ("localhost","admin","pass");
mysql_select_db ("test",$conn);

Запрос на загрузку данных
$result = mysql_query ("SELECT id,number FROM `testbase` WHERE id='1'",$conn);
if (mysql_num_rows($result) > 0)
{
$buffer = mysql_fetch_array ($result);
}


Он работает корректно о чем сообщает мне на экране следующая строка

echo('ПЕРЕМЕННАЯ: '.$buffer['number']);

Затем я делаю запрос который собсно и не выполняется

$test = mysql_query("UPDATE testbase SET number = '555' WHERE id='1'") or die (mysql_error($test));

Я уже немогу, голову сломал почему $test возвращает false, излазил форумы, пытался вникнуть в мануал по функции но что-то упускаю, немогу догнать где я парюсь, нужна помощь.

Hulio
18.10.2009, 01:54
Вот только что тестил 100% рабочий код, - неработает :005:


$db = mysql_connect("localhost","admin","pass");
mysql_select_db("testdb",$db);

$result = mysql_query ("UPDATE firma SET name='Алексей' WHERE id='3'");

if ($result == 'true')
{
echo "Информация в базе обновлена успешно!";

}
else
{
echo "Информация в базе не обновлена!";
}



Естественно существует база testdb в ней находится табличка firma в которой содержатся 3 записи с 2 полями id и name. В чем причина, что за фигня ?

Googleman
18.10.2009, 09:14
А разве mysql_error принимает какие-нибудь параметры кроме идентификатора подключения? Если подключение к базе одно, то его без параметров запускают.

int mysql_errno([int $link_identifier])

string mysql_error([int $link_identifier])

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in <..... путь к файлу.... >
но ошибка в первом сообщении связана с mysql_error.

Hulio
18.10.2009, 11:32
Впринципе я mysql_error использую для отладки, этот код не влияет на программу т.к. и без mysql_error апдейт не работает и ошибку опрделить не могу.

Regis Filius
18.10.2009, 14:14
Существует база данных db, в которой есть таблица table со столбцами id (mediumint) и column (text). Всё работает нормально.
<?php
mysql_connect ('localhost', 'user', 'pass');
mysql_select_db ('db');

$query = mysql_query ("UPDATE `table` SET `column`='value' WHERE `id`='1'") or die (mysql_error());
if ($query = true) {echo 'База данных обновлена';}
else echo 'Не удалось обновить базу данных';
?>

А ошибку какую пишет?

Hulio
18.10.2009, 14:33
Существует база данных db, в которой есть таблица table со столбцами id (mediumint) и column (text). Всё работает нормально.
<?php
mysql_connect ('localhost', 'user', 'pass');
mysql_select_db ('db');

$query = mysql_query ("UPDATE `table` SET `column`='value' WHERE `id`='1'") or die (mysql_error());
if ($query = true) {echo 'База данных обновлена';}
else echo 'Не удалось обновить базу данных';
?>

А ошибку какую пишет?

Спасибо Regis Filius твой код у меня нормально работает о_0 !Вечерком тщательно проверю где ошибка у меня, видимо из-за того что я присваиваю переменным значение функции mysql_connect и передаю его как идентификатор запросу, незнаю так или нет, надо тестить.

Спасибо за помощь, а :close_tem мне надо внимательнее читать мануал

Regis Filius
18.10.2009, 14:57
Идентификаторы можно и не передавать, если есть только одно подключение к базе данных. А я уверен, что оно одно )))