Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > не выполняется insert и update


Автор: kr3v3tkus 26.9.2008, 01:09
Посмотрел похожие темы - ничего не помогло, минимум кода, я в пхп не разбираюсь, но делал всё по мануалу, ничего лишнего. Выборку из пхп делает нормально, ошибки никакие не высвечивает, базу создавал через пхпМайАдмин. Из пма точно такой же запрос спокойно выполняется.
база называется bank, таблица - branch, в таблице 4 поля - ID Name Adress Phone, ID - первичный ключ, автоинкремент
версия php 5.2.1, mysql 4.3.3.2

Код

<?php

$link = mysql_connect("localhost", "root", "1")
or die("Не могу подключиться");
print ("Соединение выполнено");

mysql_select_db('bank', $link) or die ('Не могу выбрать БД');

$query = "INSERT INTO branch('ID', 'Name', 'Adress', 'Phone') VALUES(NULL, '$name', '$adress', '$phone')"
  or die("не добавил");
echo "Успешно добавлено!";

var_dump($result);

echo mysql_error();

mysql_close($link);

?>


значения пердаются так
Код

<FORM ACTION="index2.php" METHOD="POST">

<INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30">

<INPUT TYPE="text" NAME="adress" SIZE="20" MAXLENGTH="30">

<INPUT TYPE="text" NAME="phone" SIZE="20" MAXLENGTH="30">

<INPUT TYPE="submit" VALUE="Отправить запрос!">
</FORM>

но думаю это тут не нужно, тк я пробовал и значения в инсерт пихать

Автор: MoLeX 26.9.2008, 08:34
kr3v3tkus, побалуйся phpmyadmin'ом, там отображается весь sql запрос... очень помогает)

Автор: bars80080 26.9.2008, 09:12
я мож чегой-то не знаю, но что это за конструкция?

Код

$query = "INSERT INTO branch('ID', 'Name', 'Adress', 'Phone') VALUES(NULL, '$name', '$adress', '$phone')"
  or die("не добавил");


Добавлено через 33 секунды
присвоение переменной значения или смерть?

Автор: MoLeX 26.9.2008, 09:20
Цитата(kr3v3tkus @  26.9.2008,  01:09 Найти цитируемый пост)
$query = "INSERT INTO branch('ID', 'Name', 'Adress', 'Phone') VALUES(NULL, '$name', '$adress', '$phone')"
  or die("не добавил");
echo "Успешно добавлено!";


Код

$query = "INSERT INTO branch('ID', 'Name', 'Adress', 'Phone') VALUES(NULL, '$name', '$adress', '$phone')";
if(mysql_query($query))
{
    echo "Ok";
}
else
{
    echo mysql_error();
}



Добавлено через 5 секунд
 smile 

Автор: teroni 26.9.2008, 10:21
+ не
Код

branch('ID', 'Name', 'Adress', 'Phone')

а
Код

branch(`ID`, `Name`, `Adress`, `Phone`)


Автор: kr3v3tkus 26.9.2008, 10:32
всем спасибо большое smile

MoLeX, 
не совсем понял, а что именно посмотреть? я же тот же самый запрос делаю...


bars80080, 
это результат бездумных ошибок, которые совершаются в тщетной надежде нашаманить чтонибудь, чтобы код заработал... такое бывает в отчаянии smile


MoLeX, 
поменял, теперь пишет вот так
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''ID', 'Name', 'Adress', 'Phone') VALUES (NULL, '', '', '')' at line 1
никак не пойму при чём тут синтаксис, вроде же всё ок... и причём тут лайн 1, ведь запрос не там
Код

<?php

$link = mysql_connect("localhost", "root", "1")
or die("Не могу подключиться");
print ("Соединение выполнено");

mysql_select_db('bank', $link) or die ('Не могу выбрать БД');

$query = "INSERT INTO branch ('ID', 'Name', 'Adress', 'Phone') VALUES (NULL, '$name', '$adress', '$phone')";
if(mysql_query($query))
{
    echo "Ok";
}
else
{
    echo mysql_error();

}

?>


teroni
Вы меня опередили пока писал) Да, всё заработало, но почему то добавляет все поля пустыми, я ввёл сначала на русском подумал кодировка, но на англ тоже самое(((

Автор: MoLeX 26.9.2008, 10:50
kr3v3tkus, а я не вижу где переменной $name присваивается значение, т.е. она пуста

Добавлено через 1 минуту и 37 секунд
Цитата(kr3v3tkus @  26.9.2008,  10:32 Найти цитируемый пост)

MoLeX, 
не совсем понял, а что именно посмотреть? я же тот же самый запрос делаю...


http://sql.ru/docs/mysql/rus_ref/
http://ru.php.net/manual/ru/book.mysql.php

Автор: bars80080 26.9.2008, 10:53
а у тебя есть все эти переменные: $name, $adress, $phone


и поставь в начало кода error_reporting(E_ALL);
сразу много чего прояснится

Автор: kr3v3tkus 26.9.2008, 16:05
оке smile большое паасибо всем smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)