2016-06-19 3 views
-1

Я новичок в PHP, и я пытаюсь «Php код для загрузки изображений в таблице базы данных с типом BLOB данных» ... я получаю эту ошибку как упоминалось выше, в товарной позицииPDO становится неопределенной переменной

<?php include 'connection.php'; 

function insertBlob($filePath, $mime) 
    { 
    $blob = fopen($filePath, 'rb'); 

    $sql = "INSERT INTO files(mime,data) VALUES(:mime,:data)"; 
    $stmt = $this->pdo->prepare($sql); 

    $stmt->bindParam(':mime', $mime); 
    $stmt->bindParam(':data', $blob, PDO::PARAM_LOB); 

    return $stmt->execute(); 
} 

$strSQL-> insertBlob('C:\Users\Vishal\Desktop\house.png',"image/png"); 

if(mysqli_query($con, $strSQL)){ 
echo "Records added successfully."; 
} else{ 
echo "ERROR: Could not able to execute $strSQL. " . mysqli_error($con); 
} 

?> 

enter image description here

+0

Что находится на линии 19 'blob.php' –

+0

, откуда вы получили это? '$ strSQL->' –

+0

Вы имеете в виду '$ strSQL = insertBlob (...)'? –

ответ

1

Ошибка говорит о том, что переменная $strSQL не определена.

$this->pdo->prepare не имеет смысла в вашей функции.

Вы смешиваете ООП с функциональными концепциями.

Обновлено

Я предполагаю, что connection.php классно, и $strSQL является экземпляром этого класса, insertBlob() должен быть внутри определения класса не из.

Так под включать, создать новый экземпляр,

$strSQL = new WhatEverClass()

class MyConnection { 
    protected $pdo; 

    public function __construct() { 
     $this->pdo = ... 
    } 

    public function insertBlob($filePath, $mime) 
     { 
     $blob = fopen($filePath, 'rb'); 

     $sql = "INSERT INTO files(mime,data) VALUES(:mime,:data)"; 
     $stmt = $this->pdo->prepare($sql); 

     $stmt->bindParam(':mime', $mime); 
     $stmt->bindParam(':data', $blob, PDO::PARAM_LOB); 

     return $stmt->execute(); 
    } 

} 

    $strSQL = new MyConnection(); 
    $strSQL->insertBlob('C:\Users\Vishal\Desktop\house.png',"image/png"); 
Смежные вопросы