将日期插入MySQL数据库

时间:2014-06-16 12:02:07

标签: mysql sql sql-insert

我正在编写一个脚本,将有关图书的数据插入数据库。

这是插入数据的代码         

$errors=array();

 foreach(array('title','author','publisher','pub_date','isbn','Format','genre','category','bookcase','shelf','user_id') as $key=>$val){

    $_REQUEST[$key] = mysqli_real_escape_string($ptah,trim($_REQUEST[$val])) ;

};
    $title = $_REQUEST['title'] ; $title = strip_tags($title);

    $author = $_REQUEST['author'] ; $author = strip_tags($author);

    $publisher = $_REQUEST['publisher'] ; $publisher = strip_tags($publisher);

    $pub_date = $_REQUEST['pub_date'] ; $pub_date = strip_tags($pub_date);

    $isbn = $_REQUEST['isbn'] ; $isbn = strip_tags($isbn);

    $format = $_REQUEST['Format'] ; $format = strip_tags($format);

    $genre = $_REQUEST['genre'] ; $genre = strip_tags($genre);

    $category = $_REQUEST['category'] ; $category = strip_tags($category);

    $bookcase = $_REQUEST['bookcase'] ; $bookcase = strip_tags($bookcase);

    $shelf = $_REQUEST['shelf'] ; $shelf = strip_tags($shelf);

    $username = $_REQUEST['user_id'] ; $username = strip_tags($username);

# On success, register user
if (empty($errors))

# Insert the user into the database
{
    $insert_sql = "INSERT INTO library (title, author, publisher, pub_date, isbn, format, genre, category, bookcase, shelf, time_entered, by) VALUES ( '$title', '$author', '$publisher', '$pub_date', '$isbn', '$format', '$genre', '$category', '$bookcase', '$shelf', NOW(), '$username' )";
mysqli_query($ptah,$insert_sql) or die(mysqli_error($ptah));

mysqli_close($ptah);
exit();
};
?>

提交时,我收到以下错误。

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在VALUES附近使用正确的语法(' Gently Does It',' Hunter Alan','罗宾逊' 2010',' 1234567890','在第1行

这会错过格式,类型,类别,书架,书架,输入日期以及完全由谁填写。

有趣的是,要提交的数据量会随着各个部分的长度而变化,

例如

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在VALUES附近使用正确的语法('百岁老人爬出窗外消失'在第1行   甚至没有完成标题,而

     

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在VALUES附近使用正确的语法(' a',' b',' c&#39 ;,' 1234',' 1','平装','小说','幻想',' ; a1''在第1行   直到书柜。

我很难过。任何人都可以帮忙。

2 个答案:

答案 0 :(得分:0)

BY是MySQL中的保留字,因此您应该使用反引号`来转义它,以防您需要将其用作字段名称。

<...> , time_entered, `by`) <...>

答案 1 :(得分:0)

BYreserved word in MySQL。要在查询中将其用作标识符,您需要使用反引号将其括起来:

... time_entered, `by`) VALUES (...

通常最好将标识符(列名,表名等)与反引号括起来。它对查询引擎更明确。