无法在mysql中保存值

时间:2014-12-03 07:11:55

标签: php mysql codeigniter

我正在尝试将数据保存在两个不同的数据库表中,当我运行两个查询时,它会在整数字段中保存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)

有人可以说出错了吗?

7 个答案:

答案 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中的错误