2012-01-24 2 views
2

Уверен, что этот вопрос задан тысячу раз, но через час, по-настоящему пробуя много примеров в Интернете, мне не удалось вставить новые данные в таблицу. Я попробовал много методов, как я сказал, тот, который я собираюсь опубликовать, является самым последним. Если кто-нибудь знает, почему мой код терпит неудачу, это сэкономит столько стресса. Мне до сих пор удалось вставить данные через phpmyadmin. База данных называется «test», а таблица называется «получение». Обратите внимание, что «ключ» автоматически увеличивается.Невозможно вставить данные в таблицу mysql через php

Спасибо

$username='****'; 
$password='****'; 
$database='test'; 



    $con= mysql_connect("localhost",$username,$password); 

    mysql_select_db("test",$con); 




    mysql_query("INSERT INTO getting (Key, Date, amount, tax, Extra) 
    VALUES ('', 'sept 26 2008', '35653', '46', '454')"); 
+1

вы пробовали для выхода из ключа? как: '(\' key \ ', ...)' –

+1

Вы должны поместить между ключевыми словами backticks, дату форматирования как YYYY-MM-DD, чтобы убедиться, что это правильно сделано и показать нам, какую ошибку вы получаете ... – Marco

ответ

8

Вы должны попробовать

  1. пут ключевых слов между обратные кавычки
  2. даты в формате ГГГГ-ММ-ДД
  3. не использовать кавычки для чисел
  4. использование NULL для ключей автоинкрементных (вы мог также удалить его с INSERT)
  5. выполнить проверку ошибок

Попробуйте этот запрос

$res = mysql_query(
    "INSERT INTO getting (`Key`, `Date`, amount, tax, Extra) 
    VALUES (NULL, '2008-09-26', 35653, 46, 454)"); 
if (!$res) { 
    die('Invalid query: ' . mysql_error()); 
} else { 
    // Do here what you need 
} 
+0

Это сработало! Спасибо Марко. Приму. Я считаю, что проблема заключалась в том, что я ставил котировки вокруг суммы, налога и дополнительных? Не уверен, хотя. – Teddy13

+0

@ Teddy13: если вы выполняете проверку ошибок, на экране будет выведена ошибка, если запрос неверен, говоря вам, какая часть неверна, поэтому упростить ее исправить! :) – Marco

1
mysql_query("INSERT INTO getting (Key, Date, amount, tax, Extra) 
    VALUES ('', 'sept 26 2008', '35653', '46', '454')") or die(mysql_error()); 

Что можно сказать после выполнения? Если в запросе есть ошибка, вы увидите ее.

+0

@Marco Извините, я здесь только на второй день) На самом деле это не вопрос, это подсказка. – Cheery

+0

Не волнуйтесь, после того, как вы отредактировали добавление части 'или die', это нормально :) – Marco

0

мое предположение было бы «4. использовать NULL для ключей автоинкрементных»Марко слишком

0

Я верю, если„ключ“подал в autoincremented вы можете даже не беспокоиться упоминая его в вставной заявлении. что-то вроде этого

INSERT INTO getting (Date, amount, tax, Extra) 
VALUES ('sept 26 2008', '35653', '46', '454') 
Смежные вопросы