如何在ubah.php中调用query.php里的$qbaru变量替代$ubh?
修改SQL查询调用:从$ubh切换到$qbaru
很简单,你只需要把原来引用$ubh的代码换成$qbaru就可以了,具体修改如下:
原代码:
$r = mysqli_fetch_array(mysqli_query($conn, "$ubh"));
修改后的代码:
$r = mysqli_fetch_array(mysqli_query($conn, $qbaru));
这里我去掉了包裹$ubh的双引号——因为$qbaru本身就是存储完整SQL语句的字符串变量,直接传入mysqli_query即可,加双引号虽然也能运行,但直接使用变量更符合PHP编码规范。
不过要提醒你一个关键问题:当前$qbaru里的kode_product = ''是空值条件,这会导致查询返回空结果(除非存在产品编码为空的记录)。如果你想关联之前$ubh查询里的产品编码,应该把这个条件改成kode_product = '$kode',也就是更新query.php里的$qbaru定义:
$qbaru = "SELECT GROUP_CONCAT(kode_category) FROM ec_product_category WHERE kode_product = '$kode' AND dtcode ='1'";
另外额外提一句:直接把变量拼进SQL语句存在SQL注入风险,如果$kode或$kodeParnter是用户输入的内容,建议改用MySQLi预处理语句来规避风险,示例代码如下:
// 预处理查询语句 $stmt = mysqli_prepare($conn, "SELECT GROUP_CONCAT(kode_category) FROM ec_product_category WHERE kode_product = ? AND dtcode = ?"); // 绑定参数(s代表字符串类型,两个参数分别对应$kode和固定值'1') mysqli_stmt_bind_param($stmt, "ss", $kode, '1'); // 执行查询 mysqli_stmt_execute($stmt); // 获取结果集 $result = mysqli_stmt_get_result($stmt); // 取出数据 $r = mysqli_fetch_array($result);
这样的写法不仅更安全,也更健壮。
内容的提问来源于stack exchange,提问作者Helmi Farhan




