イメージファイルの名前を変更し、ファイルの場所をデータベースに保存しようとしています。私は中に入れていますテーブルの行のIDとしてファイル名を指定したいと私は、それに伴う問題の問題が生じています アップロードし、挿入した後、私はこのようなとして私のテーブルを見てみたい:。名前でファイル名を変更
----------------------------------------
| id | name | category | image |
----------------------------------------
| 1 | foo | category | uploads/1.jpg |
----------------------------------------
idフィールドは自動インクリメントされます。ここ はそれのために私のコードです:
function service()
{
$con=$this->do_upload();
$id=mysql_insert_id();
$data=array(
'name'=>$this->input->post('name'),
'category'=>$this->input->post('category'),
'image'=>'uploads/'.$id.$con['file_ext'];
);
$query=$this->db->insert('table',$data);
return $query;
}
これが正しい方法ではありませんし、ファイルを仮定としては、それが保存されている「アップロード/ 1.JPG」としてそれを保存するwanted.insteadとしてデータベースに保存されていません'uploads/0.jpg'とします。
誰でも私にそれを行うための正しい条約を提供できますか? n.b.私はcodeigniter 2.1.0とmySQLデータベースを使用しています。
私たちは、あなたが 'con'に' $ 'を逃している知っていると仮定 - >' $ IDです。con ['file_ext']; ' –
' do_upload() '関数の内部ではどうなりますか?接続が閉じられたり、他のデータベースアクションが発生した場合、あなたは 'INSERT_ID'を失う可能性があります –
ファイル名には「upload /」が含まれてはいけません。おそらくあなたはそのディレクトリにすべてのファイルを保存しているでしょうから、ファイル名は" image1.jpg " –