据我所读,例如,查询中的表名不需要反引号:(“INSERT INTO table_name ....”)。此外,据我所知,在名称中使用下划线是完全可以接受的语法:foo_bar。那么我的问题是,为什么这个查询失败了:
mysql_query("INSERT INTO quick_links WHERE ...etc");
当此查询完美运行时:
mysql_query("INSERT INTO `quick_links` WHERE ...etc");
“快速”或“链接”是保留字???我不这么认为,但话又说回来,我对 MySQL 还很陌生,所以我很抱歉。另外,在某些“存储引擎”中是否需要使用反引号(术语参考 phpMyAdmin)?如果这有什么不同,我碰巧正在使用“InnoDB”。
感谢您的回答,我是 MySQL 的新手,我想确保我了解这些细微差别。
我的完整查询是这样的:
mysql_query("INSERT INTO `quick_links` VALUES (
'$user_id', '$ql_name', '$ql_url', '$ql_img'
)");
$ql_url 和 $ql_name 是通过 $_POST 获得的,然后在用于查询之前使用 trim 和 mysql_real_escape_string 进行清理。$ql_img 只是一个 url,指向一个上传缩略图的目录,而 $user_id 是用来识别登录的特定用户的。这两个查询从字面上看是完全相同的,除了周围的反引号表名。