2013-12-04 3 views
0

У меня есть два сценария, которые вставляют новую строку в мою базу данных SQL. Один работает, а другой нет. Оба они выглядят одинаково (но для разных данных), но один не работает. Я не могу понять, что я делаю неправильно.ВСТАВИТЬ в таблицу не работает. Использование MySQL и PHP

Disclosure: Я самоучитель и не занимался программированием, кроме нескольких лет назад.

Этот продукт работает: включает ('db.php');

mysql_query("INSERT INTO leadprofile (first_name, last_name, home_phone, mobile_phone, work_phone, work_phone_ext, email_address, description, fk_source) VALUES ('$_POST[first_name]','$_POST[last_name]','$_POST[home_phone]','$_POST[mobile_phone]','$_POST[work_phone]','$_POST[work_phone_ext]','$_POST[email_address]','$_POST[description]','$_POST[fk_source]')"); 

mysql_close($con); 

Этот не работает. Нагрузки страниц, но не значения вставляются в таблицу:

include('db.php'); 

mysql_query("INSERT INTO tasks (fk_lead_id, task_type, task_detail, due_date) VALUES ('$_POST[fk_lead_id]',('$_POST[task_type]','$_POST[task_detail]','$_POST[due_date]')"); 

mysql_close($con); 

Оба ссылаются на тот же db.php файл, который загружает только базу данных. Я ценю любую помощь и надеюсь, что это что-то сумасшедшее просто. Я подтвердил, что имя таблицы и имена столбцов верны.

+2

И любые ошибки, которые вы не улавливаете; unescaped strings (что, если моя фамилия 'O'Connor'?); Риски внедрения SQL? –

+0

Не используйте функции mysql_, они устарели. Вместо этого используйте mysqli_ или PDO. Также НИКОГДА не передавайте какие-либо данные непосредственно в SQL-запрос, найдите SQL-инъекции как можно скорее. – Patrick

+0

Где все эти ужасные обучающие программы mysql, которые не упоминают mysql_error()? «Я самоучитель» - Забудьте все, что вы знаете, и начните через http://www.phptherightway.com/#databases –

ответ

1

Theres кронштейна слишком много

INSERT INTO tasks (fk_lead_id, task_type, task_detail, due_date) 
    VALUES ('$_POST[fk_lead_id]',('$_POST[task_type]','$_POST[task_detail]','$_POST[due_date]') 
           ^here 

Вы бы легко найти, если вы использовали mysql_error() например например:

mysql_query("...") or die(mysql_error()); 
+0

Я побежал или умру (mysql_error()); и реализовано в дополнение к дополнительной скобке, у меня было место в имени столбца в самой таблице в базе данных. Спасибо, что указали, что или умереть (mysql_error()); делает. Дело закрыто, и теперь это работает. –

Смежные вопросы