PHP查询SQL Server数据库判断字段NULL时触发数组转字符串报错
解决PHP判断数据库字段NULL时的Array to string conversion错误
兄弟,你这问题根源太明显啦——代码里的$row.['Photo']多了个多余的点号!这个点是PHP的字符串连接符,你这么写相当于逼着PHP把$row这个数组转换成字符串(这直接触发了Array to string conversion警告),然后再去取['Photo'],完全是语法错误,不报错才怪呢。
第一步:修正核心语法错误
把所有的$row.['Photo']改成$row['Photo'],这是PHP访问数组元素的正确写法,压根不需要那个多余的点!
第二步:正确判断字段是否为空/NULL
针对你“无照片时显示其他内容”的需求,推荐两种靠谱的判断方式:
方式1:精准判断NULL或空字符串
如果数据库里的“无照片”状态可能是NULL,也可能是空字符串'',可以用这种精准判断:
if (is_null($row['Photo']) || $row['Photo'] === '') { // 无照片时显示的内容 echo '暂无照片'; } else { // 有照片时的操作 echo $row['Photo']; }
方式2:用empty()快速简化判断(注意适用场景)
empty()会把NULL、空字符串''、0、false、空数组都判定为“空”,如果你的业务场景里这些值都属于“无照片”的情况,可以简化成:
if (empty($row['Photo'])) { echo '暂无照片'; } else { echo $row['Photo']; }
补充说明
为啥之前直接输出<?= $row.['Photo'] ?>看起来“正常”?其实那时候已经在偷偷报错了,只是你没开启PHP错误提示没看到而已。浏览器里可能显示的是Array['Photo']或者乱码,只是你误以为正常,实际上语法从一开始就错了。
内容的提问来源于stack exchange,提问作者RCDAWebmaster
相关产品推荐
相关产品推荐

