2014-03-27 49 views
0

我做:如何截斷表用事先準備好的聲明中Doctrine2

$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只是一個字符串

回答

1

你不能夠作爲佔位符在事先準備好的陳述'table_name'是無效的MySql語法使用表或列名。

如果你需要使你的列/表名安全,你可以將它們包裝在反引號中。

"`".$table_name."`" 
+0

謝謝忘記了這:) – codecowboy