我有一个奇怪的问题,即创建表会将反引号添加到数据库中的表名。
public function create_table($name)
{
$sql = "
CREATE TABLE IF NOT EXISTS `?` (
id int(11) NOT NULL AUTO_INCREMENT,
url varchar(255) NOT NULL,
resolved tinyint(1) NOT NULL,
PRIMARY KEY (id)
)";
$query = $this->_pdo->prepare($sql);
$query->bindValue(1, $name);
if($query->execute())
{
print("Created");
}
else
{
var_dump($query->errorInfo());
}
}
我这样做并绑定的原因是$name它将由我正在寻找通用文件和目录名称的网络爬虫动态完成,并且由于可收集的大量路径我决定为每个路径创建一个表站点及其名称从其主机名生成。(可能的狡猾主机名示例: https: //whe.re/)
但这导致了这一点。
所以我在没有它们的情况下尝试并抛出错误
“您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本对应的手册,了解在‘‘random_site’附近使用的正确语法
我没有看到或没有想到什么,自从我使用 PHP 以来已经有一段时间了,我很茫然,因为我所有的搜索都让我明白为什么在进行不是我的查询时,表名应该用反引号包围问题。
翻翻过去那场雪