【发布时间】:2022-09-29 22:45:58
【问题描述】:
我编写了一个获取文档记录的查询,在该记录中有一个名为Attachment 的字段,它将文件位置和属性存储为一个数组。
我曾经这样做的查询是:
$result=DB::Query(\"select * FROM dbo.Toolkit_ComplianceItems WHERE ToolkitItemPk= 114\");
while($data = $result->fetchAssoc())
{
$array = $data[\"Attachment\"];
echo $array;
}
echo 将数组输出如下:
[{
\"name\": \"files\\/Cairnhill Emergency Plan v.6.0 Sep 2022_dy8yokem.pdf\",
\"usrName\": \"Cairnhill Emergency Plan v.6.0 Sep 2022.pdf\",
\"size\": 1020697,
\"type\": \"application\\/pdf\",
\"searchStr\": \"Cairnhill Emergency Plan v.6.0 Sep 2022.pdf,!:sStrEnd\"
}]
所以,我知道 var_dump 和 echo 返回我所期望的。
然后,我试图检索确切的字段,例如文件名,该文件名记录在此数组中的 \"name\" 下,我正在使用以下方法执行此操作:
echo \"name: \".$array[0][\"name\"];
但由于我不明白的原因,我收到以下错误消息:
致命错误:未捕获的 TypeError:无法访问类型字符串的偏移量 在字符串上
据我所知,我使用的是正确的 [array][0][name] 结构,但是有人可以指出我做错了什么吗?
(PS 我知道这个查询对 SQL 注入开放,我会在它工作后更正它。)
-
I am aware that this query is open to SQL Injection...您向我们展示的版本不是,它完全是硬编码的。你通常用 114 代替变量吗?