PHP中如何通过动态变量访问MySQL查询结果行的列?
解决方法
你遇到的核心问题是**$row是关联数组而非对象**,所以不能用对象的->语法访问属性,得用数组的动态键名写法:
$prop = "theProp"; $test3 = $row[$prop]; // 正常工作
如果确实需要用对象语法访问,可以把数组转换成对象:
$rowObj = (object)$row; $test4 = $rowObj->$prop; // 现在可以正常访问
为什么之前的写法不行?因为从MySQL查询返回的结果默认是数组形式(比如用mysqli_fetch_assoc()或者PDO的PDO::FETCH_ASSOC模式),只有当你指定返回对象(比如mysqli_fetch_object()或PDO的PDO::FETCH_OBJ)时,才能用->访问属性。
内容的提问来源于stack exchange,提问作者Tink
相关产品推荐
相关产品推荐

