2011-06-26 8 views
0

他のトピックを見てきましたが、ここで何が間違っているのか分かりません。たとえば、TRUNCATEクエリを単純なSELECT *で置き換えると、結果が得られます。しかし、これは偽を返します。このトピックから次のコードをコピーして結果を得ることを望んでいます:PHP & MySQL: Truncate multiple tablesAMFPHPでPHP&MySQL TRUNCATE TABLEがfalseを返す

そして私は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; 
} 

答えて

1

テーブルを切り捨てるのに必要なprivalagesを持っていますか? MySQLドキュメントから:

[TRUNCATE]では、MySQL 5.1.16以降のDROP権限が必要です。 (5.1.16より前には、DELETE特権が必要です)。

編集:privalageを使用していないと、何らかのエラーが発生する - ログに記録されていますか、またはクエリエラーを確認できますか?

+0

ありがとう、それはわかりませんでしたが、私はいつもDELETEで十分だろうと思っていました。 - ) –

+0

素晴らしい、嬉しいです:) –

0

ドキュメントによれば、「切り捨て操作が削除された行の数に意味のある値を返さない。通常の結果が 『NO情報』と解釈されるべきであり、 『影響を受けた0行は、』 http://dev.mysql.com/doc/refman/5.0/en/truncate-table.html

を見ます

それでは、if文がtruncateが成功してもelse文のパスを辿るように見える

+0

上記のように特権を変更したとき、結果はtrueを返しました。 –

関連する問題