简单地说,我想截断然后从mysql中的数据库中删除一个表,如下所示:
require_once('connect_m.php');
if(isset($_POST['del'])){
if(is_array($_POST['del'])) {
foreach($_POST['del'] as $value){
$query = "TRUNCATE TABLE ".$value."";
$result = mysql_query($query);
if(!$result){
echo "Wrong";
}
$query2 = "DROP TABLE ".$value."";
$result2 = mysql_query($query2);
if(!$result2){
echo "Wrong2";
}
}
至于connect_m.php,它只是建立mysql连接
<?php
$con = mysql_connect('localhost', 'root', '');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("stores_m", $con);
?>
但是我echo
$value
我得到正确的值(正确的表名),但代码不截断或删除任何选定的表!最令人讨厌的部分是php / mysql没有警告或错误消息。
答案 0 :(得分:1)
您需要删除表名周围的引号以使TRUNCATE和DROP工作
您应该显示MySQL返回的真实错误,而不是回显“错误”,这有助于您了解会发生什么:
$result2 = mysql_query($query2);
if(!$result2){
echo "Error '" . mysql_errno() . "' : " . mysql_error();
}
答案 1 :(得分:1)
用`替换'引号。所以你的查询应该是这样的:
$query = "TRUNCATE TABLE `".$value."`;";
$query2 = "DROP TABLE `".$value."`;";
您也可能根本不使用表名称旁边的引号。