вставить многомерный массив в MySQL базы данных - PullRequest
1 голос
/ 28 марта 2011

Я действительно надеюсь, что кто-нибудь сможет мне помочь, прежде чем я скину себя со скалы. Я создал класс для загрузки нескольких изображений, хранящихся в многомерном массиве. Изображения перемещаются в выбранную папку. Я хочу хранить детали каждого изображения в базе данных MySQL. Каждое изображение должно иметь уникальный ключ, который идентифицирует его для конкретного продукта.

Таблица itm_pic_details (images) имеет 5 полей Идентификатор автоматического увеличения идентификатора
itm_pic_id уникальный идентификатор, связанный с продуктом
itm_pic_dsc имя файла
itm_file_date дата добавления
itm_file_user (не требуется заполнять на этом этапе. Только для целей транзакции) itm_file_path (расположение изображения)

Я включил 2 наиболее важные функции в свой класс загрузки

    protected function processFile($filename,$error,$size, $type,$tmp_name,$overwrite){
$OK = $this->checkError($filename,$error);
if ($OK) {
$sizeOK = $this->checkSize($filename, $size);
    $typeOK = $this->checkType($filename, $type);
if ($sizeOK && $typeOK) {
$name = $this->checkName($filename, $overwrite);
$success = move_uploaded_file($tmp_name, $this->_destination . $name);
if ($success) {
$message = "$filename uploaded successfully";
if ($this->_renamed) {
$message .= " and renamed $name";
}
$this->_messages[] = $message;
} else {
    $this->_messages[] = 'Could not upload ' . $filename;
}
  }
}
}


    public function move($overwrite = false) {
$field = current($this->_uploaded);
if(is_array($field['name'])){
foreach($field['name'] as $number => $filename){
//process the multiple upload
$this->_renamed = false;
$this->processFile($filename,$field['error'][$number],$field['size']    [$number],$field['type'][$number],$field['tmp_name'][$number], $overwrite); 
}
} else  {
    $this->processFile($field['name'],$field['error'],$field['size'],$field['type'],$field['tmp_name'],$overwrite);
}

}

...