在foreach中截断表,以表名'order'

时间:2011-07-07 17:41:03

标签: php mysql

我正在尝试使用先前开发人员编写的脚本来清空许多不同的表。现在的问题是我添加了一个名为'order'的表并打破了循环。

set_time_limit (0); 
$conn = mysql_connect('localhost', 'root', '') or die ('Error connecting to mysql');
mysql_select_db('database-name');

$tables = array(
    'address',
    'manufacturer',
    'order',
    'voucher_history',
    'voucher_theme',
);

foreach ($tables as $table) {
    $sql = sprintf('TRUNCATE TABLE %s', $table);
    printf('%s %s ', $sql, str_repeat('.', 73 - strlen($sql)));
    $result = mysql_query($sql);
    if (!$result) {
        die('Invalid query: ' . mysql_error());
    }else {
        echo "Done!<br />";
    }
}

2 个答案:

答案 0 :(得分:1)

order是一个保留关键字,因此必须用引号括起来:

'`order`',

答案 1 :(得分:0)

反引你的表名。订单是保留的关键字,会导致您的查询中断