从 textarea 中获取行并插入到 mysql

Get the lines from textarea and insert to mysql

我一直在尝试使用文本区域向 mysql 添加多行。 问题是我可以从文本框中获取所有行,但是 我想使用“|”作为分隔符将它们分隔成值。

                    $invalid = 0;
                    $inserted = 0;
                    $totalaccounts = 0;
                    $lista = $db->real_escape_string($_POST['textarea']);
                    $price = $db->real_escape_string($_POST['price']);
                    $lines = explode("\n", $lista);
                    while($lines){
                    foreach($lines as $line) {
                        $lines1 = explode(" | ", $line);
                        foreach($lines1 as $line1) {
                            $line1 = $db->real_escape_string($line1);
                            if($line1 == ""){
                                $line1 = "NONE";
                            }
                            unset($line1);
                        }
                        // SQL CHECK IF DUPLICATED $lines1[0] $lin....
                        $numrowz = mysqli_num_rows($sqlz);
                        if($numrowz >= 1) {
                            echo 'DUPLICATED: ' . $line1 . '<br />';
                            $invalid++;
                        }else{
                            // SQL INSERT CODE
                            $inserted++;
                        }   
                    }
                    }
                echo 'Total Accounts: ' . $inserted . '<br />';
                echo 'Total Duplicated/Expired: ' . $invalid . '<br />';
                echo 'Total Inserted: ' . $inserted . '<br /><br />';

                echo '<html><body><a href="continue.html">CLICK HERE TO CONTINUE</body></html>';
                }

这是我正在使用的代码,但我只尝试添加一个就得到了无限制的重复输入。 需要帮助:(

你有一个无限循环。 while($lines) 将继续 运行 只要 $lines evaluates to true,并且我在您的代码中没有看到控制变量 ($lines) 未设置或设置为的任何地方假的。

我也没有看到您可以从这样的 while 循环中受益的任何地方,因为您已经在遍历 $lines 数组。看来您打算改为执行条件,例如 if ($lines) {