【发布时间】:2017-02-11 04:35:13
【问题描述】:
我正在将一些现有代码从 mysqli 转换为 PDO,以使用准备好的语句/绑定变量来帮助防止查询中的 SQL 注入,但我在获取结果和使用 json 作为 JavaScript 的输入时遇到了问题。
执行查询后,我使用此代码构建结果数组:
$stmt->setFetchMode(PDO::FETCH_ASSOC);
while($row = $stmt->fetch()) {
$json[] = $row;
}
echo json_encode($json);
问题在于,似乎我的任何不是字符串的数据库列都在没有双引号的情况下返回,这与我使用 mysqli 时不同,后者将所有值都用双引号括起来。我该如何解决?有没有办法将所有值都作为字符串获取结果?
这是结果的比较 - 请注意,“ID”是我的自动编号列,在 PDO 结果中它没有用双引号括起来:
PDO
[{"ID":55,"Entry_Form_Number":1005,"Barcode_Text":"2017-1005","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"Dioramas","Paid":1,"DatePaid":"09-Feb-17 上午 11:28","创建日期":"17 年 2 月 3 日 01:11PM","DateLastUpdated":"09-Feb-17 11:28AM","LastUpdatedBy":"wf_boxoffice"},{"ID":56,"Entry_Form_Number":1006,"Barcode_Text":"2017-1006","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"Dioramas","Paid":1,"DatePaid":"09-Feb-17 上午 11:28","创建日期":"17 年 2 月 3 日 01:16PM","DateLastUpdated":"09-Feb-17 上午 11:28","LastUpdatedBy":"wf_boxoffice"},{"ID":59,"Entry_Form_Number":1009,"Barcode_Text":"2017-1009","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"原始 Sculpt/Scratchbuilt","Paid":1,"DatePaid":"09-Feb-17 上午 11:28","创建日期":"17 年 2 月 4 日 上午 10:32","DateLastUpdated":"09-Feb-17 上午 11:28","LastUpdatedBy":"wf_boxoffice"},{"ID":62,"Entry_Form_Number":1010,"Barcode_Text":"2017-1010","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"Dioramas","Paid":1,"DatePaid":"09-Feb-17 上午 11:28","创建日期":"17 年 2 月 8 日 08:31PM","DateLastUpdated":"09-Feb-17 上午 11:28","LastUpdatedBy":"wf_boxoffice"},{"ID":63,"Entry_Form_Number":1011,"Barcode_Text":"2017-1011","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"Dinosaurs","Paid":0,"DatePaid":null,"DateCreated":"09-Feb-17 08:12PM","DateLastUpdated":"09-Feb-17 08:12PM","LastUpdatedBy":"wf_anon"},{"ID":64,"Entry_Form_Number":1012,"Barcode_Text":"2017-1012","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"恐怖 数字","Paid":0,"DatePaid":null,"DateCreated":"10-Feb-17 07:55AM","DateLastUpdated":"10-Feb-17 07:55AM","LastUpdatedBy":"wf_anon"}]
MYSQLI
[{"ID":"55","Entry_Form_Number":"1005","Barcode_Text":"2017-1005","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"Dioramas","Paid":"1","DatePaid":"09-Feb-17 上午 11:28","创建日期":"17 年 2 月 3 日 01:11PM","DateLastUpdated":"09-Feb-17 上午 11:28","LastUpdatedBy":"wf_boxoffice"},{"ID":"56","Entry_Form_Number":"1006","Barcode_Text":"2017-1006","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"Dioramas","Paid":"1","DatePaid":"09-Feb-17 上午 11:28","创建日期":"17 年 2 月 3 日 01:16PM","DateLastUpdated":"09-Feb-17 上午 11:28","LastUpdatedBy":"wf_boxoffice"},{"ID":"59","Entry_Form_Number":"1009","Barcode_Text":"2017-1009","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"原始 Sculpt/Scratchbuilt","Paid":"1","DatePaid":"09-Feb-17 上午 11:28","创建日期":"17 年 2 月 4 日 上午 10:32","DateLastUpdated":"09-Feb-17 上午 11:28","LastUpdatedBy":"wf_boxoffice"},{"ID":"62","Entry_Form_Number":"1010","Barcode_Text":"2017-1010","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"Dioramas","Paid":"1","DatePaid":"09-Feb-17 上午 11:28","创建日期":"17 年 2 月 8 日 08:31PM","DateLastUpdated":"09-Feb-17 上午 11:28","LastUpdatedBy":"wf_boxoffice"},{"ID":"63","Entry_Form_Number":"1011","Barcode_Text":"2017-1011","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"Dinosaurs","Paid":"0","DatePaid":null,"DateCreated":"09-Feb-17 08:12PM","DateLastUpdated ":"09-Feb-17 08:12PM","LastUpdatedBy":"wf_anon"},{"ID":"64","Entry_Form_Number":"1012","Barcode_Text":"2017-1012","Entrant_Name":"aa bb","Model_Name":"cc","Category_Name":"恐怖 数字","Paid":"0","DatePaid":null,"DateCreated":"10-Feb-17 07:55AM","DateLastUpdated":"10-Feb-17 07:55AM","LastUpdatedBy":"wf_anon"}]
【问题讨论】:
-
用一些数据显示表结构