2016-10-03 90 views
-1

清除問題,我使用php作爲我的後端,我想獲取url映像的內容,然後將它作爲BLOB類型插入到mysql中?這個怎麼做 ?如何從url獲取圖片並將其保存在mysql中作爲BLOB? php

我試過這段代碼:

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "111"; 
$dbname = "111"; 
// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 


$data = file_get_contents("https://images-na.ssl-images-amazon.com/images/M/MV5BMTI3ODc2ODc0M15BMl5BanBnXkFtZTYwMjgzNjc3._V1_UX182_CR0,0,182,268_AL_.jpg"); 


    $sql = "UPDATE employee SET realPhoto='".$data."' WHERE id= 2"; 

if ($conn->query($sql) === TRUE) { 
echo ("true"); 

} else { 

echo ("false"); 
} 

?> 

我想是這樣的,而無需使用Imagick類,怎麼樣?

+0

你需要告訴我們你嘗試過什麼。 –

+0

到目前爲止你做了什麼? –

+0

不要轉義二進制圖像數據...你應該使用[準備語句](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php),而不是串聯你的查詢... –

回答

1
"INSERT INTO images (image) VALUES('".mysqli_real_escape_string($link, file_get_contents($filename))."')" 
+0

我不會推薦轉義二進制鏡像數據。無論如何,如果你想讓圖片仍然有效,那麼不是。 –

+0

如果要將二進制數據插入到字符串列(例如BLOB列)中,則應該使用轉義序列表示某些字符。反斜槓(「\」)和用於引用字符串的引號字符必須轉義。在某些客戶端環境中,可能還需要轉義NUL或Control + Z。如果沒有轉義,mysql客戶端會截斷包含NUL字符的帶引號的字符串,如果沒有轉義,則可以在Windows上使用Control + Z作爲END-OF-FILE。表示每個字符的轉義序列,請參見表10.1「特殊字符轉義序列」。 –

+0

http://dev.mysql.com/doc/refman/5.7/en/string-literals.html –

0

使用file_put_contents

file_put_contents($imgBlob, file_get_contents($url)); 
+0

'file_put_contents()'如何將它保存到他的數據庫? –

+0

它足以引導任何人瞭解他如何將它從那裏保存到數據庫。他想將url內容保存到數據庫 – Cyclotron3x3