باسلام خدمت شما دوستای وب مستری عزیز و گرامی ،آیا در موردنوع blob ها شنیده اید؟

می توانیم عکس ها یا دیگر اسناد را در پایگاه داده ذخیره کنیم. برای این منظور، با نوع داده BLOB کار می کنیم.

اول، جدولی به نام books می سازیم  که دارای یک BLOB است.

CREATE TABLE `books` (‎

‎  `id` int(11) NOT NULL auto_increment,‎

‎ ‎

‎  `title` varchar(150) NOT NULL,‎

‎  `author` varchar(150) NOT NULL,‎

‎ ‎

‎  `description` varchar(255) NOT NULL,‎

‎  `on_sale` tinyint(1) NOT NULL,‎

‎ ‎

‎  `cover` blob NOT NULL,‎

‎  PRIMARY KEY  (`id`)‎

‎ ‎

‎);

نمونه داده جدول را اضافه می کنیم.

‎// configuration‎

‎$dbtype     = “sqlite”;‎

‎$dbhost     = “localhost”;‎

‎$dbname     = “test”;‎

‎$dbuser     = “root”;‎

‎$dbpass     = “admin”;‎

‎// database connection‎

‎$conn = new PDO(“mysql:host=$dbhost;dbname=$dbname”,$dbuser,$dbpass);‎

‎// new data‎

‎$title = “ZEND FRAMEWORK TUTORIAL”;‎

‎$author = “PHP Everyday”;‎

‎$cover = fopen(‘7.png’,’rb’);‎

‎// query‎

‎$sql = “INSERT INTO books (title,author,cover) values(?,?,?)”;‎

‎$q = $conn->prepare($sql);‎

‎$q->bindParam(1, $title);‎

‎$q->bindParam(2, $author);‎

‎$q->bindParam(3, $cover, PDO::PARAM_LOB);‎

‎$q->execute();‎

‎?>‎

حالا داده را بازیابی می کنیم.

‎// configuration
‎$dbtype     = “sqlite”;‎
‎$dbhost     = “localhost”;‎
‎ ‎    ‎$dbname     = “test”;‎
‎$dbuser     = “root”;‎
‎ ‎    ‎$dbpass     = “admin”;‎
‎// database connection‎
‎$conn = new PDO(“mysql:host=$dbhost;dbname=$dbname”,$dbuser,$dbpass);‎
‎// query‎
‎$sql = “SELECT id,title,author,cover FROM books”;‎
‎$q = $conn->prepare($sql);‎
‎$q->execute();‎
‎$q->bindColumn(1, $id);‎
‎$q->bindColumn(2, $title);‎
‎$q->bindColumn(3, $author);‎
‎$q->bindColumn(4, $cover, PDO::PARAM_LOB);‎
while($q->fetch())‎
‎ ‎
‎{‎
file_put_contents($id.”.png”,$cover);‎
echo “$title, $author, ‎ ‎
‎”;‎
‎}‎
‎?>‎