php
  • mysql
  • 2010-07-02 80 views 1 likes 
    1

    出於某種原因,我想刪除我的表中使用php mysql查詢函數的一些記錄。這是我寫的在mysql中執行多個sql刪除查詢for php

    $sql = "delete from progress where first_date='2010-01-01' and last_date='2010-01-31'; 
    delete from progress where first_date='2010-02-01' and last_date='2010-02-28'; 
    delete from progress where first_date='2010-03-01' and last_date='2010-02-31'; 
    delete from progress where first_date='2010-04-01' and last_date='2010-02-30'; 
    delete from progress where first_date='2010-05-01' and last_date='2010-02-31';"; 
    
    if(!mysql_query($sql)) echo "Error deleting records"; 
    

    這正是我得到的,「錯誤刪除記錄」。但是,如果使用mysql_error()來使用它,畢竟它沒有用。任何人都知道如何處理這個?感謝之前

    +0

    把你最後的回聲改爲'echo'刪除記錄時出錯:',mysql_error();',它會吐出發生的確切錯誤。只是說「發生了什麼事」是沒有用的。 – 2010-07-02 14:54:47

    回答

    2

    使用mysql_query()時,您無法發送多個SQL查詢。這就是它失敗並返回錯誤的原因。

    +0

    這就是我以前所做的。奇怪的是,當我使用phpmyadmin時間過長看起來很好 – 2010-07-02 10:36:40

    +1

    我認爲這是因爲phpMyAdmin解析你的SQL,按給定的分隔符分割語句併爲每個單獨的語句運行'mysql_query()'一次。 – BoltClock 2010-07-02 10:47:31

    +0

    我會再試一次謝謝之前 – 2010-07-02 10:52:23

    5

    出於安全原因,mysql_query()不能執行多個語句。

    使用mysqli_multi_query()或多次調用mysql_query()。

    +0

    是的,我使用mysqli_multi_query,但一旦我得到錯誤:'命令不同步,你現在不能命令'或smiliar – 2010-07-02 10:39:00

    +0

    我會再試一次謝謝 – 2010-07-02 10:46:34

    0

    您可以爲每個查詢創建不同的變量,然後爲每個創建的變量調用mysql_query。 我這樣做時,我想執行兩個查詢來選擇和更新一次。

    0

    爲什麼不把所有查詢合併成一個?

    $ sql =「DELETE FROM progress WHERE(first_date ='2010-01-01'AND last_date ='2010-01-31')OR(first_date ='2010-02-01'AND last_date ='2010- 02-28')OR(first_date ='2010-03-01'AND last_date ='2010-02-31')OR(first_date ='2010-04-01'AND last_date ='2010-02-30')或(first_date ='2010-05-01'AND last_date ='2010-02-31')「;

    +0

    我現在會使用PDO,而不是mysql_query 。但是你的代碼可能會反過來。 – 2017-04-13 09:13:37

    相關問題