Большой Воронежский Форум
» Программирование>проблема с mysql и php
adventus 16:01 17.04.2008
не создаётся запись в таблице
$zapic = "INSERT INTO users (login, password, name, family, email, group) VALUES ($login_, $password1reg_, $name_, $family_, $email_, $group_)";
$reg = mysql_query($zapic);
из - за чего это может быть?
никаких ошибок не выдаётся, переменный содержат значения [Ответ]
-=Женек=- 17:47 17.04.2008
adventus

Сообщение от :
$reg = mysql_query($zapic);

К какому коннекту запрос шлешь? У mysql_query два параметра, странно, что ошибка не выбегает, смотри свой php.ini в параметр display_errors

Если подсоединялся к базе так:
$connection=mysql_connect($mysql_host,$mysql_user, $mysql_pass);

То запрос слать надо так:
$reg = mysql_query($zapic, $connection);


Далее, у тебя строка запроса неправильная. Запомни, все что после кавычек, PHP понимает как набор символов, поэтому в табилцу запишется не значение переменной $login, а строка "$login".

Надо писать так:

$zapic = "INSERT INTO users VALUES ('{$login_}', '{$password1reg_}', '{$name_}', '{$family_}', '{$email_}', '{$group_}')";

Обрати внимание, я убрал из запроса между users и VALUES строку "(login, password, name, family, email, group) ". Так ли она нужна? У меня без нее работает.


Для удобства вот весь мой код (в config.php у меня логин и пароль для подключения, замени их в строке mysql_connect на свои):

Сообщение от :
<?php
include ("config.php");
$connection=mysql_connect($mysql_host,$mysql_user, $mysql_pass);
$db=mysql_select_db($database);



$login_ = "vasya";
$password1reg_ = "password";
$name_= "vasya";
$family_ = "pupkin";
$email_ = "[email protected]";
$group_ = "Admin";


$zapic = "INSERT INTO users VALUES ('{$login_}', '{$password1reg_}', '{$name_}', '{$family_}', '{$email_}', '{$group_}')";
$reg = mysql_query($zapic, $connection);

print $zapic;
print "<br>";
print $reg;

?>

Если ты клеишь строку запроса в процессе, то почаще в рамках отладки выводи ее на экран - увидишь что получается и что ты пытаешься запихнуть в MySQL. [Ответ]
adventus 22:07 17.04.2008
всё заработало, спасибо [Ответ]
Yandex 19:53 18.04.2008
-=Женек=-, строка
> "(login, password, name, family, email, group) ".
указывает в какие колонки будут вставляться передаваемые значения. Код, без указания столбцов, будет достаточно хрупким и после добавления колонки в таблицу может навернуться. [Ответ]
-=Женек=- 20:57 18.04.2008
Yandex, я знаю, но вопрос не в этом. Вопрос в том, почему его конструкция не сработала - я ее в phpmyadmin загрузил - не работает, пишет - ошибка синтаксиса. Разбираться не стал, так как ни разу не использовал такую кострукцию.
Предпочитаю INSERT INTO users SET user='pupkin', password='password'
Намного удобнее. [Ответ]
Вверх