Ciao a tutti ho un problema con uno script che dovrebbe inserirmi nel database MySQL dei dati relativi a degli articoli che gli utenti pubblicano, uno di questi è la data di pubblicazione, che, a quanto pare, da problemi ad essere accettata da MySQL.
la tabella MySQL (cms_articles) contiene:
article_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INTEGER UNSIGNED NOT NULL,
is_published BOOLEAN NOT NULL DEFAULT FALSE,
submit_date DATETIME NOT NULL,
publish_date DATETIME,
title VARCHAR(255) NOT NULL,
article_text MEDIUMTEXT,
mentre lo script di transazione che va a recuperare i valori da un form con method="post" e va a scrivere il contenuto nella tabella contiene:
Codice PHP:
case 'Submit New Article':
$title = (isset($_POST['title'])) ? $_POST['title'] : '';
$article_text = (isset($_POST['article_text'])) ? $_POST['article_text'] : '';
if (isset($_SESSION['user_id']) && !empty($title) &&
!empty($article_text)) {
$sql = 'INSERT INTO cms_articles
(user_id, submit_date, title, article_text)
VALUES
(' . $_SESSION['user_id'] . ',
"' . date('Y-m-d H:i:s') . '",
"' . mysql_real_escape_string($title, $db) . '",
"' . mysql_real_escape_string($article_text, $db) . '")';
mysql_query($sql, $db) or die (mysql_error($db));
}
redirect('cms_index.php');
break;
testandolo mi si presenta il seguente errore:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' "2010-09-20 23:37:28", "titolo", ' at line 4
dove "2010-09-20 23:37:28" è la data di pubblicazione e "titolo" è semplicemente il corrispettivo di title.
a cosa può essere dovuto esattamente? non capisco, ho provato anche a modificare i parametri all'interno di date() ma nulla.. mi ripete sempre lo stesso errore.. che sia mica la funzione che non va bene?