Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP foreach mysql行更新_Php_Mysql_Foreach - Fatal编程技术网

PHP foreach mysql行更新

PHP foreach mysql行更新,php,mysql,foreach,Php,Mysql,Foreach,当我在localhost上运行上面的代码时,没有任何内容得到更新,但是当我尝试回显循环中的所有变量时,我得到了所有正确的值。这里有谁能给我们点启示吗 提前谢谢 编辑:修正了。$categ的值似乎在末尾包含了一个额外的空格,因此它与数据库中的值不匹配。您完全可以接受,并且应该以正确的方式使用它,而不是连接查询。特别是因为你根本没有逃避用户的输入!你能打印print\r($conn->errorInfo())吗在prepare命令之后?使用db连接的错误处理。输出生成的SQL并将其输入mysql客户

当我在localhost上运行上面的代码时,没有任何内容得到更新,但是当我尝试回显循环中的所有变量时,我得到了所有正确的值。这里有谁能给我们点启示吗

提前谢谢


编辑:修正了。$categ的值似乎在末尾包含了一个额外的空格,因此它与数据库中的值不匹配。

您完全可以接受,并且应该以正确的方式使用它,而不是连接查询。特别是因为你根本没有逃避用户的输入!你能打印
print\r($conn->errorInfo())吗在prepare命令之后?使用db连接的错误处理。输出生成的SQL并将其输入mysql客户端。毕竟,在您准备好的语句中使用参数并绑定它们。@AgamBanga以下是打印结果:
数组([0]=>00000[1]=>[2]=>)数组([0]=>00000[1]=>[2]=>)数组([0]=>00000[1]=>[2]=>)
似乎只有最后一次迭代有效并记录在数据库中,前两个由于未知原因被跳过。我在回显变量时仍然得到正确的值。@tyy007也替换这个
$sql->execute()
变量转储($sql->execute())。检查在任何情况下它是否返回0,您是否完全可以使用它,并且应该以正确的方式使用它,而不是连接查询。特别是因为你根本没有逃避用户的输入!你能打印
print\r($conn->errorInfo())吗在prepare命令之后?使用db连接的错误处理。输出生成的SQL并将其输入mysql客户端。毕竟,在您准备好的语句中使用参数并绑定它们。@AgamBanga以下是打印结果:
数组([0]=>00000[1]=>[2]=>)数组([0]=>00000[1]=>[2]=>)数组([0]=>00000[1]=>[2]=>)
似乎只有最后一次迭代有效并记录在数据库中,前两个由于未知原因被跳过。我在回显变量时仍然得到正确的值。@tyy007也替换这个
$sql->execute()
变量转储($sql->execute())。检查在任何情况下是否返回0
foreach($_POST['categ_name'] as $key => $categ)
{
    $beg = $_POST['beg_count'][$key];
    $del = $_POST['del_count'][$key];
    $ret = $_POST['ret_count'] [$key];
    $exc = $_POST['exc_count'] [$key];
    $pout = $_POST['pout_count'] [$key];
    $sales = $_POST['sales_count'] [$key];
    $end = $_POST['end_count'] [$key];
    $actual = $_POST['actual_count'] [$key];
    $var = $_POST['variance'] [$key];

        $sql = $conn->prepare("UPDATE `inventory_report_count` SET `beg` = '$beg' , `del` = '$del' , `ret` = '$ret' , `exc` = '$exc' , `po` = '$pout' ,`sales` = '$sales' ,`end` = '$end' ,`actual_count` = '$actual' ,`variance` = '$var' WHERE `categ_name` = '$categ' ");
        $sql -> execute();
}