2017-10-04 82 views
0

我是使用PHP运行SQL命令的新手,但我试图做的是在脚本运行时截断数据库中的特定表。我可以做到这一点罚款只是一个表,但是当我尝试多个表我遇到问题!代码在下面,任何指针?!在此先感谢使用PHP执行SQL查询

<?php 
    var_dump($_POST); 
    $myServer = $_POST['host']; 
    $myUser = $_POST['user']; 
    $myPass = $_POST['password']; 
    $myDB = $_POST['db']; 

    $con = mysqli_connect($myServer, $myUser, $myPass) or die("Connection 
    Failed"); 
    mysqli_select_db($con, $myDB)or die("Connection Failed"); 


    $query = (" 
     SET FOREIGN_KEY_CHECKS = 0; 

     TRUNCATE table customers; 

     TRUNCATE table customers2; 

     SET FOREIGN_KEY_CHECKS = 1; 


    "); 

    if(mysqli_query($con, $query)){ 
    echo "table empty";} 
    else{ 
    echo("Error description: " . mysqli_error($con));} 


    ?> 
+3

[两个mysqli查询]的可能重复(https://stackoverflow.com/questions/10924127/two-mysqli-queries) – Jens

+0

您的查询不应该有围绕它的括号。您不能将多个语句传递给mysqli查询。要么做多个查询,要么使用mysqli_multi_query。 – aynber

+0

你说你遇到问题。 “问题”为?任何错误消息或什么? – sequel

回答

2

一次执行一个查询

mysqli_query($con, "SET FOREIGN_KEY_CHECKS = 0;"); 
mysqli_query($con, "TRUNCATE table customers;"); 
mysqli_query($con, "TRUNCATE table customers2;"); 
mysqli_query($con, "SET FOREIGN_KEY_CHECKS = 1;"); 

或使用mysqli_multi_query

mysqli_multi_query($con, " 
SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE table customers; 
TRUNCATE table customers2; 
SET FOREIGN_KEY_CHECKS = 1; 
");