2016-02-17 3 views
1

Я пытаюсь сохранить имя изображения вместе с другими данными в базе данных, но не в состоянии. в базу данных ничего не добавлено. но изображение загружается в каталог, когда я закрываю скобу} перед конфигурацией db. но я получил вызов неопределенной функции upload(), когда я закрываю функцию brace} после вставки. вот код:Загруженный, но не сохраненный файл

$imagesub = isset($_FILES['image']); 

if ($imagesub) 
{ 
    $output=upload(); 
} 
return $output; 
function upload() 
{ 

    include_once "class.php"; 

    $uploader = new Uploader("image"); 

    $uploader->saveIn("images"); 

    $fileUploaded = $uploader->save(); 



$db = new mysqli("localhost", "root","","learndb"); 

if ($db->connect_error) { 
    die("Connection failed this is the error: " . $db->connect_error); 
} 

$stmt = $db->prepare("INSERT INTO studentrecords (Name, email, Phone, school,dob,father,feereceived,due,image) VALUES (?,?,?,?,?,?,?,?,?)"); 

if($stmt) 
{ 
    $stmt->bind_param("ssisssiis",$name,$email,$phone,$school,$dob,$father,$feereceived,$due,$fileUploaded); 
     $stmt->execute(); 
    $out="<center>information entered.</center>"; 
     echo "$out"; 
} 
else 
{ 

    $out="DATABASE ERROR!!!"; 
    echo "$out"; 
} 
     return $out; 
} 

Вот функция сохранения()

public function save(){ 
    $folderIsWriteAble = is_writable($this->destination); 
    if($folderIsWriteAble){ 
     $name = "$this->destination/$this->filename"; 
     if($succes = move_uploaded_file($this->fileData, $name)) 
     { 
      return $name; 
     } 
    } 
} 
+0

do '$ uploader-> save();' возвращает имя файла? можете ли вы добавить то, что находится внутри функции? – roullie

+0

@roullie Я добавил. – micky

+0

Вы получаете 'DATABASE ERROR !!!'? Вы проверяли ошибки на привязке и/или выполняете? – chris85

ответ

0

@Micky вы только 9 полей, определенных в вашей вставки запроса, но вы передаете 10 параметров в'bind_param() ` ,

$stmt->bind_param("ssisssiis",$name,$email,$phone,$school,$dob,$father,$feereceived,$due,$fileUploaded);

должен быть

$stmt->bind_param($name,$email,$phone,$school,$dob,$father,$feereceived,$due,$fileUploaded);

Если это не решит ваша проблема, то var_dump переменного $ fileUploaded и убедитесь, что у вас есть совместимый тип данных, определенные для столбца, используемым для хранения имени файла.

+0

Я прохожу 9 параметров. – micky

+0

Как насчет типа данных переменной $ fileUploaded и DB? –

+0

Цвет и тип изображения. – micky

Смежные вопросы