【发布时间】:2015-03-22 11:54:56
【问题描述】:
我正在运行从网站获取订单并将其插入数据库的脚本,它工作正常,但每次脚本运行时我都会收到此错误-
错误 - 严重性:警告 --> preg_match() 期望参数 2 为 字符串,给定对象 C:\xampp\htdocs\system\database\drivers\mysqli\mysqli_driver.php 202
错误 - 严重性:警告 --> mysqli_query() 期望参数 2 是字符串,给定对象 C:\xampp\htdocs\system\database\drivers\mysqli\mysqli_driver.php 179
错误 - 严重性:警告 --> preg_match() 期望参数 2 为 字符串,对象给定 C:\xampp\htdocs\system\database\DB_driver.php 622
错误 - 严重性:警告 --> mysqli_num_rows() 需要参数 1 为 mysqli_result,给定 null C:\xampp\htdocs\system\database\drivers\mysqli\mysqli_result.php 37
这是我下面的代码
public function insert_orders($data_orders) {
foreach($data_orders as $key=>$value){
$order_id=trim($value['order_id']);
$amount_paid=trim($value['amount_paid']);
$query = $this->db->query("SELECT * FROM orders WHERE order_id='".$order_id."' AND amount_paid LIKE '".$amount_paid."'");
if ($query->num_rows > 0) {
unset($data_orders[$key]);
}
}
if(count($data_orders)==0) return;
$this->db->insert_batch('orders', $data_orders);
}
我看不出这有什么问题,但请你检查一下,让我知道我在哪里犯错了吗?
我正在使用 codeigniter。
数据库设置-
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
【问题讨论】:
-
检查$order_id和$amount_paid这两个变量有值吗?
-
是的,它显示了两个值
-
你的问题可以
var_dump($data_orders)吗? -
正确显示数组中的所有订单。
-
尝试在您的 config.php 中设置
$config['log_threshold'] = 3;并查看完整日志..这可能会帮助您解决问题..
标签: php mysql sql codeigniter mysqli