2017-10-04 106 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; 
");