一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP的PDO大對象(LOBs)

PHP的PDO大對象(LOBs)

2019-06-27 16:49php參考手冊 PHP教程

今天小編就為大家分享一篇關于PHP的PDO大對象(LOBs),小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

PHP PDO 大對象 (LOBs)

應用程序在某一時刻,可能需要在數據庫中存儲"大"數據。

"大"通常意味著"大約 4kb 或以上",盡管某些數據庫在數據達到"大"之前可以輕松地處理多達 32kb 的數據。大對象本質上可能是文本或二進制。

PDOStatement::bindParam()PDOStatement::bindColumn())調用中使用PDO::PARAM_LOB類型碼可以讓 PDO使用大數據類型。

PDO::PARAM_LOB告訴PDO作為流來映射數據,以便能使用PHP Streams API來操作。

從數據庫中顯示一張圖片

下面例子綁定一個LOB到$lob變量,然后用fpassthru()將其發送到瀏覽器。因為LOB代表一個流,所以類似fgets()、fread()以及stream_get_contents()這樣的函數都可以用在它上面。

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("select contenttype, imagedata from images where id=?");
$stmt->execute(array($_GET['id']));
$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);
$stmt->bindColumn(2, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
header("Content-Type: $type");
fpassthru($lob);
?>

插入一張圖片到數據庫

下面例子打開一個文件并將文件句柄傳給PDO來做為一個LOB插入。PDO盡可能地讓數據庫以最有效的方式獲取文件內容。

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id = get_new_id(); // 調用某個函數來分配一個新 ID
// 假設處理一個文件上傳
// 可以在 PHP 文檔中找到更多的信息
$fp = fopen($_FILES['file']['tmp_name'], 'rb');
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);
$db->beginTransaction();
$stmt->execute();
$db->commit();
?>

插入一張圖片到數據庫:Oracle

對于從文件插入一個lob,Oracle略有不同。必須在事務之后進行插入,否則當執行查詢時導致新近插入LOB將以0長度被隱式提交:

<?php
$db = new PDO('oci:', 'scott', 'tiger');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) " .
"VALUES (?, ?, EMPTY_BLOB()) RETURNING imagedata INTO ?");
$id = get_new_id(); // 調用某個函數來分配一個新 ID
// 假設處理一個文件上傳
// 可以在 PHP 文檔中找到更多的信息
$fp = fopen($_FILES['file']['tmp_name'], 'rb');
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);
$stmt->beginTransaction();
$stmt->execute();
$stmt->commit();
?>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91小视频在线观看免费版高清 | 太大了轻点阿受不了小说h 四色6677最新永久网站 | 亚洲图片一区二区 | 成人软件18免费 | 精品午夜久久网成年网 | www亚洲国产 | 天天综合天天影视色香欲俱全 | nxgx国产| 亚洲欧美久久久久久久久久爽网站 | 亚洲国产货青视觉盛宴 | 日本特级大片 | 丰满大屁股美女一级毛片 | japan孕妇孕交 | 天天操天天爽天天射 | 亚洲一区二区三区久久精品 | 无码AV精品一区二区三区 | 青青成人在线 | 国产亚洲女在线精品 | 99视频在线看观免费 | 久青草国产97香蕉在线视频 | 婷婷激情综合五月天 | 男女做受快插大片 | 欧美一级在线视频 | 国产伦精一区二区三区视频 | 欧美国产在线 | 久久久久激情免费观看 | 波多野结衣52部合集在线观看 | 77成人影院 | 国产成人高清精品免费5388密 | 日产欧产va1 | 青青视频国产依人在线 | 亚洲精品综合 | 97精品国产高清在线看入口 | 天天爽天天干天天操 | 2020国产精品亚洲综合网 | chinese男性厕所撒尿合集 | 日韩成人精品 | 暗卫调教女主肉高h | 福利片中文| 欧美美女被爆操 | 91粉色视频在线导航 |