我正在尝试将数据保存在两个不同的数据库表中,当我运行两个查询时,它会在整数字段中保存0。
$sql = 'insert into photo_album( user_id, photo_id, album_id )
values(". $user_id.",".$photo_id.",". $album_id.")';
$query = $this->db->query($sql);
但是当我将查询作为硬编码值运行时,它可以正常工作。
INSERT INTO
photo_album( photo_id, user_id, album_id )
VALUES(8299,214,316)
有人可以说出错了吗?
答案 0 :(得分:1)
$data = array(
'user_id' => '$user_id' ,
'photo_id' => '$photo_id' ,
'album_id' => '$album_id'
);
$this->db->insert('photo_album', $data);
答案 1 :(得分:0)
这应该适合你:
(不要混用单引号和双引号!它们是不同的:D)
$sql = "INSERT INTO `photo_album`(photo_id, user_id, album_id)
VALUES('" . $photo_id . "', '" . $user_id . "', '" . $album_id . "')";
评论后编辑:
然后尝试将'
放在值周围。也许它们存储为字符串。
也不要更改要插入的列的顺序:D
答案 2 :(得分:0)
在codeigniter格式中尝试这样做
$data = array(
'user_id' => $user_id,
'photo_id' => $photo_id,
'album_id' => $album_id
);
$this->db->insert('photo_album', $data);
答案 3 :(得分:0)
试试这个
$sql="INSERT INTO photo_album (user_id,photo_id,album_id)
VALUES('$this->user_id','$this->photo_id','$this->album_id')";
答案 4 :(得分:0)
因为您使用的是codeigniter
,所以请尝试这样:
$dataArr = array(
'photo_id' => $photo_id,
'user_id' => $user_id,
'album_id' => $album_id
);
$this->db->insert('photo_album', $dataArr);
答案 5 :(得分:0)
尝试这个单独的变量
$sql = 'insert into photo_album( `user_id`, `photo_id`, `album_id` )
values("' .$user_id. '","' .$photo_id. '","' .$album_id. '")';
答案 6 :(得分:0)
感谢您的帮助。
请告诉我这是否是mysql中的错误