色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql數據庫關聯pdf地址

傅智翔1年前10瀏覽0評論

在開發中,我們經常需要將PDF文件保存到數據庫中,并將其鏈接保存在與PDF相關的數據記錄中。

假設我們有兩個數據庫表:

CREATE TABLE `product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`pdf_link` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
CREATE TABLE `pdf` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`data` longblob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

其中,表product用于保存產品信息,pdf_link字段用于保存對應的PDF文件鏈接,表pdf用于保存PDF文件的實際數據。

下面是查詢數據時的示例代碼:

SELECT p.id, p.name, pdf.name AS pdf_name, pdf.id AS pdf_id
FROM product p
LEFT JOIN pdf ON p.pdf_link = CONCAT('/pdf/', pdf.id, '.pdf');

在上面的查詢語句中,我們通過LEFT JOIN將表product和表pdf關聯起來,其中pdf_link字段與pdf表中的數據進行關聯。PDF鏈接是使用pdf表中的id來生成的,并以“/pdf/”作為前綴。然后我們從product表中選擇所需的字段,并選擇pdf表中的name字段和id字段。

在實際的開發中,我們需要處理PDF文件的上傳和存儲,以及將PDF鏈接保存到數據庫中的過程。在存儲PDF文件的過程中,我們需要使用php庫來處理文件上傳和保存文件。在保存完文件后,我們需要將文件數據插入到pdf表中,并獲取插入的id來生成PDF鏈接。

// 處理上傳的PDF
if (isset($_FILES['pdf']) && $_FILES['pdf']['error'] === UPLOAD_ERR_OK) {
$pdf = $_FILES['pdf'];
// 保存PDF文件到服務器
$pdf_data = file_get_contents($pdf['tmp_name']);
$pdf_path = '/pdf/' . uniqid() . '.pdf';
file_put_contents($_SERVER['DOCUMENT_ROOT'] . $pdf_path, $pdf_data);
// 插入PDF數據到數據庫
$stmt = $pdo->prepare('INSERT INTO pdf (name, data) VALUES (?, ?)');
$stmt->execute([$pdf['name'], $pdf_data]);
$pdf_id = $pdo->lastInsertId();
}
// 將PDF鏈接插入到product表中
if (isset($pdf_id)) {
$stmt = $pdo->prepare('UPDATE product SET pdf_link = ? WHERE id = ?');
$stmt->execute([$pdf_path, $product_id]);
}

在上面的代碼中,我們首先檢查是否有PDF文件被上傳,如果有,則保存文件的數據和路徑。然后我們將PDF數據插入到pdf表中,并獲取插入的id值。最后,我們將PDF鏈接(pdf_path)插入到product表中的pdf_link字段中。

總之,在保存PDF鏈接到數據庫中時,我們需要獲取PDF文件的id,并將其與鏈接一起保存到數據庫中。在查詢數據時,我們需要使用LEFT JOIN來將product表和pdf表進行關聯。