Kar*_*ran 5 php mysql prepared-statement
这将返回 true 但它没有截断表:
$this->db->query("TRUNCATE TABLE $tablename");
Run Code Online (Sandbox Code Playgroud)
但它在为准备好的语句创建数据库连接对象之前工作。
如何解决?另外,我想知道如何使用准备好的语句截断表。
不,准备好的语句不是解决方案,因为无法绑定表名。所以避免对 Truncate Table 使用准备好的语句。
您不能绑定任何 SQL 文字但数据一个。所以关键字、运算符和任何标识符都不能使用准备好的语句进行绑定。您只能绑定数据。
PDO 准备好的语句在使用用户输入运行查询时很有用,因为它们允许您使用绑定参数等功能来清理用户输入。
所以在我的建议中,你不应该使用准备好的语句来截断表。
如果您真的想使用 Prepare 进行截断,如果您使用的是 Opencart,请使用以下代码:
$sql = sprintf('TRUNCATE TABLE %s%s', DB_PREFIX, $table);
$this->db->query($sql);
Run Code Online (Sandbox Code Playgroud)
尝试一次,让我知道
| 归档时间: |
|
| 查看次数: |
3498 次 |
| 最近记录: |