2016-06-19 4 views
-1

내가 PHP를 새로운 오전 그리고 난 ...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); 
} 

?> 
제목에서 언급 한 위의 나는이 오류를 받고 있어요 을 "BLOB 데이터 유형 데이터베이스 테이블에 이미지를 업로드하는 PHP 코드"를 시도하고있다

enter image description here

+0

이있어 한 곳에서 –

+0

을 blob.php''라인 (19)에 무엇입니까, 새 인스턴스를 만들 포함? '$ strSQL->' –

+0

'$ strSQL = insertBlob (...)'을 의미합니까? –

답변

1

오류는 변수 $strSQL이 정의되지 않았다고 말합니다.

$this->pdo->prepare 귀하의 기능에도 적합하지 않습니다.

OOP를 기능 개념과 혼합합니다.

내가 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");