PHP变量在传递值后始终为空

PHP变量在传递值后始终为空,php,sqlite,Php,Sqlite,我创建了这个PHP文件,它应该读取带有参数的python脚本并处理这个脚本 $error = array(); $data = array(); include("./includes/common.php"); if($_SERVER["REQUEST_METHOD"] == 'POST' && isset($_POST["submit"])){ $lbl10 = filter_input(INPUT_POST, 'lbl10', FILTER_SANITIZE_S

我创建了这个PHP文件,它应该读取带有参数的python脚本并处理这个脚本

$error = array();
$data = array();
include("./includes/common.php");

if($_SERVER["REQUEST_METHOD"] == 'POST'  && isset($_POST["submit"])){
    $lbl10 = filter_input(INPUT_POST, 'lbl10', FILTER_SANITIZE_STRING);
    $filePath = uploadFile('C:/xampp/htdocs/GraduationProject/images/test/');

    if(empty($error)){

        $output = shell_exec("C:/xampp/htdocs/GraduationProject/includes/train.py {$lbl10} {$filePath}");
        if($output){
            $ret = $db->getData("WHERE ID='{$output}'");
            while($row = $ret->fetchArray(SQLITE3_ASSOC)){
                $data = $row;
            }
        }

        $success = "Data saved successfully!";
    }
}else if($_SERVER["REQUEST_METHOD"] == 'POST'){
    $error[] = "Required Field Missing";
}

$db->close();
根据python脚本处理,PHP文件应在以下if语句之后与数据库一起产生一些结果:

<?php if(!empty($data)){ ?>


但是什么也没有发生,因为
$data
似乎总是空的

也许错误就在这里

        while($row = $ret->fetchArray(SQLITE3_ASSOC)){
            $data = $row;
        }
因为每次迭代都会覆盖$data值

我认为你需要一种不同的行为。也许吧

        while($row = $ret->fetchArray(SQLITE3_ASSOC)){
            $data[] = $row;
        }


为什么不检查$row和$data值呢?我认为,他应该添加
而(…){$data[]=$ret->fetchArray(…);}
        while($row = $ret->fetchArray(SQLITE3_ASSOC)){
            if (null != $row) {
                $data = $row;
            }
        }