2015-03-31 76 views
1

這是我的代碼至今如何在一個php if語句中運行2個sql查詢?

if (isset($_POST['button1'])) 
    { 
     $sql = "DELETE FROM UpcomingRota"; 
     $E1 = $_POST["MondayAMFirstEmployee"]; $E2 = $_POST["MondayAMSecondEmployee"]; $E3 = $_POST["MondayAMThirdEmployee"]; 
     $sql = "INSERT INTO UpcomingRota (DayAndTime, FirstEmployee, SecondEmployee, ThirdEmployee) VALUES ('MondayAM', '$E1', '$E2', '$E3')"; 

    } 

這兩個$ sql語句很好地工作在那裏自己,但是當我在if語句有兩似乎繞過第一個,只要運行最後$ SQL聲明。

我怎樣才能讓它運行儘可能多的$ sql語句,因爲我需要它....將有大約15 - 20在那裏。

在此先感謝。

根據要求提供更多代碼。

$servername = "db568845851.db.1and1.com"; 
    $username = "dbo568845851"; 
    $password = ""; 
    $dbname = "db568845851"; 

    // Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 

    if (isset($_POST['button1'])) 
    { 
     $sql = "DELETE FROM UpcomingRota"; 
     $E1 = $_POST["MondayAMFirstEmployee"]; $E2 = $_POST["MondayAMSecondEmployee"]; $E3 = $_POST["MondayAMThirdEmployee"]; 
     $sql = "INSERT INTO UpcomingRota (DayAndTime, FirstEmployee, SecondEmployee, ThirdEmployee) VALUES ('MondayAM', '$E1', '$E2', '$E3')"; 

    } 

    if ($conn->query($sql) === TRUE) { 
     echo "New record created successfully"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 
+1

那麼因爲你發佈的代碼實際上並沒有運行任何SQL語句,所以也許你應該顯示不起作用的真實代碼 – 2015-03-31 09:05:34

+0

當你設置「插入」查詢而不做任何事情時,你正在覆蓋$ sql值$ sql =「DELETE FROM UpcomingRota」; – Olvathar 2015-03-31 09:05:37

+0

您需要執行查詢。在這裏,你只需要在查詢中設置'$ sql'變量。 – D4V1D 2015-03-31 09:07:04

回答

1

第二個聲明是覆蓋第一個聲明。

$sql = "First statement;"; // Statements are separated by a ; 
$sql .= "Second statement;"; 

// (Notice the . before the = on the second line) 
// $sql now contains "First statement;Second Statement;" 

您還需要確保您正在執行使用支持多查詢的方式數據庫適配器查詢:

您可以使用下面的語法追加第二查詢到的第一個

http://php.net/manual/en/mysqli.multi-query.php

+2

您需要確保SQL語句由';'分隔,因此請使用'$ sql。=「;第二條語句」' – 2015-03-31 09:08:52

1
$sql = "DELETE FROM UpcomingRota"; 
$myResult = mysql_query($sql); 
     $E1 = $_POST["MondayAMFirstEmployee"]; $E2 = $_POST["MondayAMSecondEmployee"]; $E3 = $_POST["MondayAMThirdEmployee"]; 
     $sql = "INSERT INTO UpcomingRota (DayAndTime, FirstEmployee, 
SecondEmployee, ThirdEmployee) VALUES ('MondayAM', '$E1', '$E2', '$E3')"; 
$myResult = mysql_query($sql); 

,你必須執行的querys。

0

因爲我只是做了很多插入我的表我應該這樣做。

INSERT INTO TABLE (column1, column2) VALUES ('data', 'data'), ('data', 'data') 

及其工作到目前爲止。