我正在做:
$truncateSQL = 'TRUNCATE TABLE :tableName';
$stmtTruncate = $em->getConnection()->prepare($truncateSQL);
$stmtTruncate->bindValue('tableName',$this->tableName);
$stmtTruncate->execute();
但得到错误:
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1064 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 ''image_sizes_t'' at line 1
围绕表格的引号是否存在问题? $this->tableName
只是一个字符串
答案 0 :(得分:1)
由于'table_name'
是无效的MySql语法,因此不能在预准备语句中将表名或列名用作占位符。
如果您需要使列/表名称安全,可以将它们包装在反引号中。
"`".$table_name."`"