【发布时间】:2019-10-04 06:46:13
【问题描述】:
当我的 SELECT 已经获得我想要的列时,我不确定我是如何获得未定义索引错误的。
我有三张桌子:
clinics_branch.add.php
<?php
session_start();
require_once('clinics_branch_list.vc.php');
?>
<?php echo $lstBranch['usrmerchant']; ?>
未定义的索引在 echo usrmerchant 中
clinics_branch_list.vc.php
require_once($routePath . "_mc/Merchant.mc.php");
$mcMerchant = new Merchant_MC();
$lstBranch = $mcMerchant->SelectMainBranch_ByMerchantBranch($db, $merchantid);
Merchant.mc.php
Class Merchant_MC {
public function SelectMainBranch_ByMerchantBranch($db, $merchantid) {
$stmt = $db->prepare(
" SELECT mb.merchantid, m.usrmerchant
FROM `merchant_branch` mb
LEFT JOIN `merchant` m ON mb.merchantid = m.merchantid
WHERE mb.merchantid = $merchantid "
);
$stmt->bindValue(':merchantid', $merchantid, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $row;
}
}
这是我的选择的输出,你可以看到有内容,所以 SQL 正在运行
感谢任何帮助,完整的错误是:
Notice: Undefined index: usrmerchant in clinics_branch_add.php
更新:
将我的 SQL 行更改为 WHERE mb.merchantid = :merchantid 仍然显示相同的错误。
更新:
切换到 innjer join 也不起作用
选择 mb.merchantid, m.usrmerchant FROM Mercer_branch mb INNER JOIN商家m ON mb.merchantid = m.merchantid WHERE mb.merchantid = :merchantid
【问题讨论】:
-
你准备好的语句不是很正确,你应该有
WHERE mb.merchantid = :merchantid,所以merchantid是你bindValue()调用中的绑定参数。 -
是否改变了,仍然存在相同的错误
-
您是否尝试过使用
print_r($row);之类的东西来查看数据中的内容(可能与将mb.merchantid作为 SQL 中的列有关)。 -
你如何使用 $lstBranch?
-
见下面尼克的回答。