使用fetchAll(PDO :: FETCH_ASSOC)进行PDO查询时,它返回一个关联数组,我可以将json_encode像这样的字符串:
[{"Email_Address":"address@mail.com","Related_Data":"1239873652"}]
但是,我希望将相同的字符串简化如下:
[{"from":"address@mail.com","data":"1239873652"}]
它不仅减少了记录量高时传输的数据量,而且通过不公开数据库中字段的名称来提供额外的安全级别。
谢谢
这是使用的PHP代码:
$stmt = $db->query('SELECT * FROM Table WHERE Email_Address = \'address@mail.com\'');
$array = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($array);
按如下方式使用“ AS”别名时:
$stmt = $db->query('SELECT Email_Address AS from, Related_Data AS data FROM Messages WHERE Email_Address = \'address@mail.com\'');
服务器返回以下错误:
警告:PDO :: query():SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误;您可能会发现错误。检查与您的MySQL服务器版本相对应的手册,以获取正确的语法,以在'from,Related_Data AS data FROM table WHERE Email_Address ='address@mail.com'
附近使用答案 0 :(得分:2)
您可以并且应该在SELECT语句中列出所有列。然后,您可以尝试使用别名:
SELECT
Email_Address AS mail,
Related_Data AS data
FROM Table
WHERE Email_Address = ?