MySQL二進制數(shù)組是在數(shù)據(jù)庫中存儲二進制數(shù)據(jù)的一種方式。在MySQL中,二進制數(shù)據(jù)以字節(jié)數(shù)組的形式存儲在BLOB和BINARY數(shù)據(jù)類型中。通過使用二進制數(shù)組,我們可以有效地存儲和管理二進制數(shù)據(jù),例如圖像、音頻和視頻文件等。
CREATE TABLE my_table ( id INT(11) NOT NULL AUTO_INCREMENT, data BLOB, PRIMARY KEY (id) );
在上面的示例中,我們創(chuàng)建了一個名為“my_table”的表,其中包含一個名為“data”的BLOB列。我們可以通過INSERT語句將二進制數(shù)據(jù)插入該列中:
INSERT INTO my_table (data) VALUES (0x1234567890abcdef);
在MySQL中,我們還可以使用HEX函數(shù)將二進制數(shù)據(jù)轉(zhuǎn)換為十六進制字符串:
SELECT HEX(data) FROM my_table;
此外,我們可以使用UNHEX函數(shù)將十六進制字符串轉(zhuǎn)換為二進制數(shù)據(jù):
SELECT UNHEX('1234567890abcdef');
使用二進制數(shù)組的一個常見用例是在MySQL中存儲圖像。以下示例演示如何通過PHP將圖像插入BLOB列并從中檢索圖像:
// Insert image into database $imgData = file_get_contents('image.png'); $sql = "INSERT INTO my_table (data) VALUES ('" . addslashes($imgData) . "')"; $result = mysqli_query($conn, $sql); // Retrieve image from database $sql = "SELECT data FROM my_table WHERE id=1"; $result = mysqli_query($conn, $sql); $imgData = mysqli_fetch_assoc($result)['data']; header("Content-type: image/png"); echo $imgData;
上述代碼將PNG圖像讀取并插入BLOB列中。然后,它從數(shù)據(jù)庫中檢索圖像并將其顯示在瀏覽器中。
上一篇mysql二進制日志停用
下一篇mysql后退一步