2011-07-07 12 views
0

私は以前の開発者が書いた、いくつかの異なるテーブルを空にしたスクリプトで作業しようとしています。問題は今、私は 'order'と呼ばれるテーブルを追加し、ループを壊すことです。テーブル名を 'order'にしてforeach内のテーブルを切り捨てる

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 />"; 
    } 
} 

答えて

1

orderは、それがバック引用符で囲む必要がありますされて予約されたキーワードです:

'`order`', 
+0

これをsprintf()に追加できますか? –

+1

@Johnあなたは 'sprintf( 'TRUNCATE TABLE \'%s \ ''、$ table)'を意味しますか?何故なの? –

0

バッククォートあなたのテーブル名。注文は予約されたキーワードであり、クエリを中断させます

+0

さらに、キーワードを使用してテーブルに名前を付けないでください。 –

関連する問題