繁体   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