简单地说,我想从 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);
?>
但是我回显
$value
并且我得到了所需的正确值(正确的表名),但代码没有截断或删除任何选定的表!最烦人的部分是没有针对 php/mysql 的警告或错误消息。
最佳答案
您需要删除表名周围的引号才能使 TRUNCATE 和 DROP 起作用
您应该显示 MySQL 返回的真实错误,而不是回显“错误”,这将帮助您了解发生了什么:
$result2 = mysql_query($query2);
if(!$result2){
echo "Error '" . mysql_errno() . "' : " . mysql_error();
}
关于PHP 使用数组值截断和删除问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13672251/