我正在使用此代码插入
$last_id = "SELECT max(id) as id from clients ";
$client_id = $this->db->query($last_id)->row();
$client_last = $client_id->id;
$data = array();
for($i=0; $i<count($res); $i++)
{
$data['user_id'] = $res[$i];
$data['client_id']=$client_last;
$this->db->insert("notifications", $data);
}
数组$res
返回值user_ids
,如下所示:
Array
(
[0] => stdClass Object
(
[id] => 5
)
[1] => stdClass Object
(
[id] => 6
)
[2] => stdClass Object
(
[id] => 7
)
)
变量$client_last
会返回像5
或90
这样的单个值。
在这种情况下,我想在表通知中插入三行,在$res
的每个值中插入$client_last
数组的值和$res array
的相同值。
但在这种情况下,我收到数据库错误说:
消息:类stdClass的对象无法转换为字符串
当我用$this->db->last_qery();
打印上一个查询时
它显示了这样的东西
INSERT INTO `notifications` (`user_id`, `client_id`) VALUES (, '90')
说sql错误。
答案 0 :(得分:4)
我认为你的问题就在这一行:
$data['user_id'] = $res[$i];
您应将其更改为:
$data['user_id'] = $res[$i]->id;
因为id的值存储在数组$res
代码:
for($i=0; $i<count($res); $i++)
{
$data['user_id'] = $res[$i]->id;
$data['client_id'] = $client_last;
$this->db->insert("notifications", $data);
}