我正在编写一个脚本,将有关图书的数据插入数据库。
这是插入数据的代码
$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行 直到书柜。
我很难过。任何人都可以帮忙。
答案 0 :(得分:0)
BY
是MySQL中的保留字,因此您应该使用反引号`
来转义它,以防您需要将其用作字段名称。
<...> , time_entered, `by`) <...>
答案 1 :(得分:0)
BY
是reserved word in MySQL。要在查询中将其用作标识符,您需要使用反引号将其括起来:
... time_entered, `by`) VALUES (...
通常最好将标识符(列名,表名等)与反引号括起来。它对查询引擎更明确。