[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление записи в БД
Relrin
Имеется следующий фрагмент кода:

function addMailToDB($mail)
{
$link = mysql_connect('127.0.0.1', 'root', '123456');
if ($link === FALSE) { die("Не подкл."); }
if (mysql_select_db("mail_db"))
{
$result= mysql_query("SELECT * FROM mail_table WHERE email = '$mail'");
$arr=mysql_fetch_array($result,MYSQL_ASSOC);
if (!in_array($mail,$arr))
{
$sha1=sha1($mail);
mysql_query("INSERT INTO mail_table (email,emailhash) VALUES ('$mail','$sha1')");
echo("Регистрация прошла успешно.");
}
}

else echo ("Данный почтовый ящик уже имеется в базе!");
}


Проблема в том, что запись не добавляется в БД. Т.е. пишет в консоли, что запись некай добавлена, но в таблице это не отражено, т.е. слован записи там нету. Каким образом это можно исправить?
П.С. Работа с БД впервые
Valick
используйте конструкцию or die() сразу будет видно ошибку
и еще у вас не указана кодировка соединения
так же интересует кодировка БД и кодировка самого скрипта
$query = "INSERT INTO mail_table (email,emailhash) VALUES ('$mail','$sha1')";
// echo $query;
mysql_query($query) or die(mysql_error());


_____________
Стимулятор ~yoomoney - 41001303250491
Michael
Проверка на наличие записи у тебя совершенно неверная.
Нужно так:
       $mail = mysql_real_escape_string($mail);
$result= mysql_query("SELECT COUNT(*) as cc1 FROM mail_table WHERE email = '$mail'");
$row=mysql_fetch_array($result,MYSQL_ASSOC);
if ($row['cc1'] == 0) {
// ...
}


_____________
There never was a struggle in the soul of a good man that was not hard
Relrin
Цитата (Valick @ 1.03.2013 - 09:19)
используйте конструкцию or die() сразу будет видно ошибку
и еще у вас не указана кодировка соединения
так же интересует кодировка БД и кодировка самого скрипта
$query = "INSERT INTO mail_table (email,emailhash) VALUES ('$mail','$sha1')";
// echo $query;
mysql_query($query) or die(mysql_error());

Кодировки в базе и скрипте UTF8
Проблема оказывается была в поле $emailhash, т.к. несоответствие формату было. Поправил тип данных, теперь вроде как стало нормально.

Relrin
Цитата (Michael @ 1.03.2013 - 11:44)
Проверка на наличие записи у тебя совершенно неверная.
Нужно так:
       $mail = mysql_real_escape_string($mail);
$result= mysql_query("SELECT COUNT(*) as cc1 FROM mail_table WHERE email = '$mail'");
$row=mysql_fetch_array($result,MYSQL_ASSOC);
if ($row['cc1'] == 0) {
// ...
}

Спасибо, помогло.
Теперь проверка в базе данных работает как надо smile.gif
Быстрый ответ:

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