簡體   English   中英

php mysql IN子句不適用於CSV變量。 僅第一行受到影響

[英]php mysql IN clause not working with CSV variable. only first row is affected

當我使用php我的管理員查詢數據庫時,以下sql起作用

update invoice
set paid = 1, date_recieved = 0000-00-00, check_number = 00000
where invoice_number IN (110038,110035,110033)

我有一個文本框,用戶在其中輸入用逗號分隔的數字。 通過郵寄到$ invoice變量。 當我運行以下內容時,僅第一行受到影響。 被注釋掉的代碼是我嘗試過但無法正常工作的事情

if(isset($_POST["paymentbtn"])){
    $invoice = $_POST["invoice"];
    //$data = array($invoice);
    //$data = implode(",", $data);
    $date = $_POST["date"];
    $check = $_POST["checknumber"];
    //$invoice = mysql_real_escape_string($invoice);
    $sql = mysql_query("update invoice set paid = 1, date_recieved = '$date',     check_number = '$check'
where invoice_number IN ('$invoice')" )or die (mysql_error());
}

我可能錯過了一些簡單的東西

ps當我只輸入一個值時,它也可以工作,因此它不是無效的日期或其他任何值

不要將$發票使用'',因為當您使用它時,它就像'1,2,3',它應該像'1','2','3'或1,2,3

我認為您的查詢應如下

“更新已付款的發票集= 1,date_recieved ='$ date',check_number ='$ check',其中invoice_number IN($ invoice)”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM