2017-04-17 81 views
0

我有以下活动记录的查询从整数列表中移除qoutes值

\CI::db()->select($select)->join('customers', 'customers.id = orders.customer_id', 'left')->join('customers_address_bank as shipping', 'shipping.id = orders.shipping_address_id', 'left')->join('customers_address_bank as billing', 'billing.id = orders.billing_address_id', 'left'); 
\CI::db()->where_in('orders.id',$orderNumber); 

它生成此查询

SELECT `gc_orders`.*, `gc_customers`.*, `gc_orders`.`id` as `id`, `shipping`.`id` as `shipping_id`, `billing`.`id` as `billing_id`, `shipping`.`customer_id` as `shipping_customer_id`, `billing`.`customer_id` as `billing_customer_id`, `shipping`.`company` as `shipping_company`, `billing`.`company` as `billing_company`, `shipping`.`firstname` as `shipping_firstname`, `billing`.`firstname` as `billing_firstname`, `shipping`.`lastname` as `shipping_lastname`, `billing`.`lastname` as `billing_lastname`, `shipping`.`email` as `shipping_email`, `billing`.`email` as `billing_email`, `shipping`.`phone` as `shipping_phone`, `billing`.`phone` as `billing_phone`, `shipping`.`address1` as `shipping_address1`, `billing`.`address1` as `billing_address1`, `shipping`.`address2` as `shipping_address2`, `billing`.`address2` as `billing_address2`, `shipping`.`city` as `shipping_city`, `billing`.`city` as `billing_city`, `shipping`.`zone` as `shipping_zone`, `billing`.`zone` as `billing_zone`, `shipping`.`zip` as `shipping_zip`, `billing`.`zip` as `billing_zip`, `shipping`.`country` as `shipping_country`, `billing`.`country` as `billing_country`, `shipping`.`country_code` as `shipping_country_code`, `billing`.`country_code` as `billing_country_code`, `shipping`.`country_id` as `shipping_country_id`, `billing`.`country_id` as `billing_country_id`, `shipping`.`zone_id` as `shipping_zone_id`, `billing`.`zone_id` as `billing_zone_id`, `shipping`.`deleted` as `shipping_deleted`, `billing`.`deleted` as `billing_deleted` FROM `gc_orders` LEFT JOIN `gc_customers` ON `gc_customers`.`id` = `gc_orders`.`customer_id` LEFT JOIN `gc_customers_address_bank` as `shipping` ON `shipping`.`id` = `gc_orders`.`shipping_address_id` LEFT JOIN `gc_customers_address_bank` as `billing` ON `billing`.`id` = `gc_orders`.`billing_address_id` WHERE `gc_orders`.`id` IN**('14,12')** 

我想删除此代码,这些qoutes.Please帮助

+0

问题在'$ orderNumber'中,你能显示var_dump($ orderNumber)的值吗? –

+0

是它的一个数组,它使用implode(',',$ ordernumber)转换为字符串 – samar

回答

1

可尝试这样的: -

$orderNumber = array(14,12); 
$this->db->where_in('id', $orderNumber); 

或者: -

$orderNumber = array (14,12); 
$orderNumber = "('".implode("','",$orderNumber)."')"; 
$this->db->where_in('id', $orderNumber); 

或者: -

$orderNumber = "'".implode("','",$orderNumber)."'"; 
$this->db->where_in('id', $orderNumber); 

或者: -

$orderNumber = implode("','",$orderNumber); 
$this->db->where_in('id', $orderNumber); 
+0

它的工作非常感谢。 – samar

+0

@samar很乐意帮助你。干杯:):):) –

2

的问题不在于引号。检查:

WHERE `gc_orders`.`id` IN**('14,12')** 

它应该是这样的:

WHERE `gc_orders`.`id` IN(14,12); // If the column is integer 

WHERE `gc_orders`.`id` IN('14','12'); // If the column is varchar 
1

你需要传递的orderNumber数组一样

$orderNumber = array(14,12); 
$this->db->where_in('id', $orderNumber);