我试图截断一个表,但为什么它不起作用?在数据库查询中一定有问题吗?
$sql = "TRUNCATE TABLE `table_name`";
$result = $connection -> query($sql);
理想情况下,我想一次性截断所有表 - 是否可能?
如果你想知道我用来制作数据库查询的类里面是什么,就在这里,
#connects the database and handling the result
class __database {
protected $connection = null;
protected $error = null;
#make a connection
public function __construct($hostname,$username,$password,$database)
{
$this -> connection = new mysqli($hostname,$username,$password,$database);
if (mysqli_connect_errno())
{
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
}
...
#performs a query on the database
public function query($query)
{
$result = $this -> connection -> query($query);
if($result)
{
return $result;
}
else
{
$this -> error = $this -> connection -> error;
return false;
}
}
#display error
public function get_error()
{
return $this -> error;
}
#closes the database connection when object is destroyed.
public function __destruct()
{
$this -> connection -> close();
}
}
感谢。
修改
下面是我如何调用db对象,
# the host used to access DB
define('DB_HOST', 'localhost');
# the username used to access DB
define('DB_USER', 'root');
# the password for the username
define('DB_PASS', 'xxx');
# the name of your databse
define('DB_NAME', 'xxx');
$connection = new __database(DB_HOST,DB_USER,DB_PASS,DB_NAME);
答案 0 :(得分:1)
通过MySQL参考手册
http://dev.mysql.com/doc/refman/5.0/en/truncate-table.html
您只能使用TRUNCATE一次删除一个表。
您可以尝试使用“;”在一个PHP查询中执行多个查询他们之间的分隔符。
答案 1 :(得分:1)
感谢帮助人员!这是我的答案,
# truncate data from all table
# $sql = "SHOW TABLES IN 1hundred_2011";
# or,
$sql = "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE '".DB_NAME."'";
# use the instantiated db connection object from the init.php, to process the query
$tables = $connection -> fetch_all($sql);
//print_r($tables);
foreach($tables as $table)
{
//echo $table['TABLE_NAME'].'<br/>';
# truncate data from this table
# $sql = "TRUNCATE TABLE `developer_configurations_cms`";
# use the instantiated db connection object from the init.php, to process the query
# $result = $connection -> query($sql);
# truncate data from this table
$sql = "TRUNCATE TABLE `".$table['TABLE_NAME']."`";
# use the instantiated db connection object from the init.php, to process the query
$result = $connection -> query($sql);
}
答案 2 :(得分:0)
您有两种不同的选择。