2015-09-26 2 views
0

Я пытаюсь вставить некоторые данные в свою БД при загрузке страницы.PHP, запрос MySQL выполнен, но таблица не обновлена ​​

То, что я в настоящее время:

$servername = "localhost"; 
    $username = "xxx"; 
    $password = "xxx"; 
    $link = @mysql_connect($servername, $username, $password); 
    mysql_select_db("download_time", $link); 
    $sql = "INSERT INTO timestamp (id, time) VALUES ('1', 'testing');"; 
    mysql_query($sql, $link); 
    mysql_close($link); 

Скрипт работает просто отлично и не возвращает никаких ошибок в любом месте, я проверил тройную связь, и это тоже нормально. Запуск INSERT INTO timestamp (id, time) VALUES ('1', 'testing'); через webmin Я могу получить данные, которые нужно вставить просто отлично.

DB Состав:

CREATE TABLE `timestamp` (
    `id` int(10) NOT NULL DEFAULT '1', 
    `time` varchar(246) DEFAULT '1', 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
+0

_ "Скрипт работает просто отлично и не возвращает никаких ошибок где угодно »_ Как вы можете быть так уверены? У вас включен режим «display_errors», а 'error_reporting' установлен в' E_STRICT | E_ALL'? Тем не менее, если вы используете оператор-сюрприз _error ** death **: '@' _ в '@ mysql_connect', вы не помогаете себе: используйте устаревшее расширение и замалчиваете любые ошибки ... это просто плохо –

ответ

1

Я вижу некоторые вещи, которые являются неправильными:

1) Вы с помощью mysql_ * API

2) Вы установки первичного ключа в создание схемы, но вы даете по умолчанию «1», это неправильно, у Первичного ключа нет значения по умолчанию, поскольку они являются автоматическим приращением, у вас не может быть двух одинаковых первичных ключей.

Изменить создание схемы для этого:

CREATE TABLE `timestamp` (
    `id` int(10) AUTO_INCREMENT PRIMARY KEY, 
    `time` varchar(246) DEFAULT '1' 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

и запрос к этому

$sql = "INSERT INTO timestamp (id, time) VALUES (null, 'testing');"; 
+0

Спасибо! Я не могу в это поверить, что это просто! И, к сожалению, да. Не мой выбор использовать этот API :( Быстрый вопрос, как бы я обновил строку вместо добавления новой строки? Я пробовал 'UPDATE timestamp SET time = '$ t' WHERE id = 1', но без успеха? –

+0

@JoneDoes: в этом нет выбора: 'mysql_ *' *** устарел *** и будет удален. Используйте 'mysqli' (с' i' для _improved_) или 'PDO' –

+0

Я рад, что я помогло, не забудьте отметить ответ, когда вы в состоянии. И о запросе UPDATE, я не понимаю, почему он не должен работать –

0

insert into timestamp (time) values ('testing') необходимо оставить в MySQL руки

+0

Хотя этот блок кода может ответить на вопрос OP, этот ответ будет намного больше полезно, если вы объясните, как и почему этот код отличается от кода в вопросе, и почему это решает проблему, не представляя других. – Mifeet

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