php mysql IN子句不使用CSV变量。只有第一行受到影响

时间:2014-11-13 04:56:52

标签: php mysql csv

当我使用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());
}

即时概率缺少简单的东西

P.S。它也适用于我只输入一个值,因此它不是无效的日期或任何东西

1 个答案:

答案 0 :(得分:1)

不要使用''作为$ invoice,因为当你使用它时就像'1,2,3',它应该像'1','2','3'或1,2,3 < / p>

我认为您的查询应如下所示

“更新发票套付款= 1,日期_复制='$日期',check_number ='$ check'其中invoice_number IN($ invoice)”