You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Oracle数据库的下拉搜索功能开发报错求助

报错信息

SQLSTATE[HY000]: General error: 933 OCIStmtExecute:
ORA-00933: SQL command not properly ended
(ext\pdo_oci\oci_statement.c:157)

Notice: Undefined variable: result in
C:\xampp\htdocs\test_Oracle\src\index.php on line 87

Warning: Invalid argument supplied for foreach() in
C:\xampp\htdocs\test_Oracle\src\index.php on line 87


问题排查与修复

1. ORA-00933 SQL命令未正确结束

原因:原SQL已包含WHERE WORK_DATE = 20221104,拼接GROUP_NAME过滤条件时,直接追加WHERE GROUP_NAME=:GROUP_NAME会导致SQL语法错误(两个WHERE连续出现)。

修复代码:用AND连接第二个条件,并注意添加空格:

if(isset($_GET['group']) && $_GET['group']){
    $sql = $sql. ' AND GROUP_NAME=:GROUP_NAME'; // 补充空格和AND
    $params= [
        'GROUP_NAME' => $_GET['group']
    ];
}

2. Undefined variable: result 及 foreach参数无效

原因:当SQL执行抛出异常时,$result变量未被初始化,但页面后续仍会执行foreach($result),导致变量未定义和参数无效错误。

修复代码:在try块外初始化$result为空数组:

$result = []; // 提前初始化空数组
try{
    $params = [];
    if(isset($_GET['group']) && $_GET['group']){
        $sql = $sql. ' AND GROUP_NAME=:GROUP_NAME';
        $params= [
            'GROUP_NAME' => $_GET['group']
        ];
    }
    $stm = $db->prepare($sql);
    $stm->execute($params);
    $result = $stm->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOException $e){
    echo $e->getMessage();
}

额外优化建议

  • 日期值建议用字符串包裹,避免Oracle解析异常:WHERE WORK_DATE = '20221104'
  • HTML表格中存在未闭合的<td>标签,需补全所有闭合标签,否则会导致页面结构错乱:
<tr>
    <td> <?= $value['MODEL_NAME'] ?></td>
    <td> <?php echo $value['GROUP_NAME']; ?></td>
    <td> <?= $value['STATION_NAME']; ?></td>
    <td> <?= $value['WIP_QTY']; ?></td>
    <td> <?= $value['PASS_QTY']; ?></td>
    <td> <?= $value['FIRST_FAIL_QTY']; ?></td>
    <td> <?= $value['FAIL_QTY']; ?></td>
    <td> <?= $value['RETEST_QTY']; ?></td>
    <td> <?= $value['REPASS_QTY']; ?></td>
    <td> <?= $value['LINE_NAME'] ?></td>
</tr>

内容的提问来源于stack exchange,提问作者Thang Đai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:20:31