PHP& MySQL TRUNCATE TABLE使用AMFPHP返回false

时间:2011-06-26 12:09:41

标签: php mysql truncate amfphp

我已经看过其他主题了,我无法弄清楚这里有什么问题。例如,如果我用简单的SELECT *替换TRUNCATE查询,我会得到结果。但这会返回false。我从这个主题中复制了以下代码,希望得到一个结果:PHP & MySQL: Truncate multiple tables

我正在通过AMFPHP这样做。

# the host used to access DB
define('DB_HOST', 'localhost');

# the username used to access DB
define('DB_USER', 'usr');

# the password for the username
define('DB_PASS', '***');

# the name of your databse
define('DB_NAME', 'name');

//$connection = new __database(DB_HOST,DB_USER,DB_PASS,DB_NAME);


$connection = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);

if (mysqli_connect_errno())
{
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "TRUNCATE TABLE `books`";

$result = $connection->query($query);
if($result)
{
    return $result;
}
else
{
    return false;
}

2 个答案:

答案 0 :(得分:1)

MySQL用户是否具有截断表所需的权限?来自MySQL文档:

  

[TRUNCATE]需要MySQL 5.1.16中的DROP权限。 (在5.1.16之前,它需要DELETE权限。)

编辑:没有privalage会产生某种错误 - 你是记录还是能够看到任何查询错误?

答案 1 :(得分:0)

根据文档,“截断操作不会为已删除的行数返回有意义的值。通常的结果是”0行受影响“,应该被解释为”无信息“。请参阅http://dev.mysql.com/doc/refman/5.0/en/truncate-table.html

因此,即使截断成功,看起来if语句也会沿着else路径走。