0
首先,我只想說,我明白不使用CakePHP的內置功能來查找數據可能會導致漏洞。但是,用戶可以選擇的查詢絕對沒有輸入。它是預先確定和配置的,因此不需要注入任何東西。此外,我正在做一個工會選擇,我還沒有找到這種情況的簡單解決方案。CakePHP在select語句中跳過字段
我有如下表(從phpMyAdmin的出口)
CREATE TABLE `orders` (
`id` int(10) NOT NULL auto_increment,
`userid` int(10) default NULL,
`order_status` varchar(12) NOT NULL default 'Not Filled',
`email` varchar(50) NOT NULL,
`total` varchar(50) NOT NULL,
`fullName` varchar(60) NOT NULL,
`address` varchar(50) NOT NULL,
`city` varchar(50) NOT NULL,
`state` varchar(50) NOT NULL,
`zip` varchar(15) NOT NULL,
`created` datetime default NULL,
`modified` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
CREATE TABLE `order_items` (
`id` int(20) NOT NULL auto_increment,
`orderid` int(10) default NULL,
`userid` int(10) default NULL,
`item_number` varchar(200) default NULL,
`itemName` varchar(200) NOT NULL,
`price` varchar(10) default NULL,
`quantity` int(10) default NULL,
`total` varchar(10) default NULL,
`item_status` varchar(20) NOT NULL,
`created` datetime default NULL,
`modified` datetime default NULL,
PRIMARY KEY (`id`),
KEY `orderid` (`orderid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
因爲有不同數量的字段我不能做選擇*與工會選擇兩個表。這裏是我的查詢(使用$這個 - >模型 - >查詢())
select orders.id, orders.userid, orders.order_status, orders.email, orders.total, orders.fullName, orders.Address, orders.city, orders.state, orders.zip, orders.created from orders where userid = '$id' and order_status = 'filled'
UNION
select * from order_items where userid = '$id' and item_status = 'filled'"
這導致order_items.orderid沒有被選中,所以我想選擇字段中單獨
select orders.id, orders.userid, orders.order_status, orders.email, orders.total, orders.fullName, orders.Address, orders.city, orders.state, orders.zip, orders.created from orders where userid = '$id' and order_status = 'filled'
UNION
select order_items.id, order_items.orderid, order_items.userid, order_items.item_number, order_items.itemName, order_items.price, order_items.quantity, order_items.total, order_items.item_status, order_items.created, order_items.modified where userid = '$id' and item_status = 'filled'"
一切,但選擇了order_items.orderid的除外。當我在PHPmyadmin中運行查詢時,它選擇了order_items.orderid,所以我幾乎肯定這是CakePHP。
我甚至試圖改變的OrderID到ORDER_ID,它仍然跳過它
爲什麼你可能想'聯合''訂單'和'order_items'?我可以理解'JOIN',但'UNION' ... – peterm
@peterm你說得對,我不知道我在想什麼。這是一個漫長的一天。我會重新編寫查詢並在明天再回來。感謝您指出。 – user2443591
不客氣。休息一下,祝你好運:) – peterm