PHP。如果字段包含';{}';和';[]和#x27;
我有一些像这样的db表。此表包含PHP。如果字段包含';{}';和';[]和#x27;,php,mysql,arrays,object,Php,Mysql,Arrays,Object,我有一些像这样的db表。此表包含字符串和数字,但某些字段(类型:text)包含[]数组和{}对象(json)(空或不空) 数据库请求: $stmt = $this->db->prepare('select ' . USER_TABLE_FIELDS .' from users where name = :name'); $stmt->execute(array(':name' => $name)); $r
字符串
和数字
,但某些字段(类型:text)包含[]
数组和{}
对象(json)(空或不空)
数据库请求:
$stmt = $this->db->prepare('select ' . USER_TABLE_FIELDS .' from users where
name = :name');
$stmt->execute(array(':name' => $name));
$result1 = $stmt->fetch(PDO::FETCH_ASSOC);
在var$result1中,我有数组这个$key(string
)和$value(string
,用于所有字段)
如何将文件权限
作为数组、记录
作为对象、文档
作为对象而不是字符串获取结果
我知道
(object)$var
和(array)$var
,但可能有更简单的方法,因为它将来可以是多层次的。如果这些列(?)中是JSON,那么您的应用程序将它放在那里,而不是数据库。因此,您必须再次对其进行解码。PDO对此没有捷径。您可能应该规范化您的表,以便有一个权限表和另一个将用户链接到权限的表等。数据库模型不知道如何直接从查询构造对象或数组,因为它不是语言解释解析器。此外,MySQL实际上与语言无关,它允许您存储任何您想要的数据——但是,您可以在返回时解析数据。大多数情况下,人们将序列化对象存储在数据库中,并在检索时取消序列化,但这不是必需的。
$stmt = $this->db->prepare('select ' . USER_TABLE_FIELDS .' from users where
name = :name');
$stmt->execute(array(':name' => $name));
$result1 = $stmt->fetch(PDO::FETCH_ASSOC);