第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用php在MySql數(shù)據(jù)庫(kù)中插入Blob

使用php在MySql數(shù)據(jù)庫(kù)中插入Blob

陪伴而非守候 2019-07-30 17:32:07
使用php在MySql數(shù)據(jù)庫(kù)中插入Blob我試圖將圖像存儲(chǔ)在DataBase中,由于某種原因它似乎不起作用。這是我桌子的結(jié)構(gòu)。mysql> describe ImageStore;+---------+----------+------+-----+---------+-------+| Field   | Type     | Null | Key | Default | Extra |+---------+----------+------+-----+---------+-------+| ImageId | int(11)  | NO   | PRI | NULL    |       || Image   | longblob | NO   |     | NULL    |       |+---------+----------+------+-----+---------+-------+2 rows in set (0.01 sec)這是我的查詢(xún)插入圖像或至少這應(yīng)該是什么://Store the binary image into the database                $tmp_img = $this->image['tmp_name'];                $sql = "INSERT INTO ImageStore(ImageId,Image)                               VALUES('$this->image_id','file_get_contents($tmp_image)')";                mysql_query($sql); 如果我打印file_get_contents($ tmp_image)的值,那么屏幕上會(huì)有大量數(shù)據(jù)。但是這個(gè)值并沒(méi)有存儲(chǔ)在數(shù)據(jù)庫(kù)中,這就是我所面臨的問(wèn)題。
查看完整描述

3 回答

?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

問(wèn)題

$sql = "INSERT INTO ImageStore(ImageId,Image)
        VALUES('$this->image_id','file_get_contents($tmp_image)')";

這將在PHP中創(chuàng)建一個(gè)名為的字符串$sql。忘記MySQL一分鐘,因?yàn)槟氵€沒(méi)有執(zhí)行任何查詢(xún)。你只是在構(gòu)建一個(gè)字符串。

PHP的神奇之處在于你可以在雙引號(hào)內(nèi)寫(xiě)一個(gè)變量名 - 比方說(shuō)$this->image_id- 變量仍然可以神奇地?cái)U(kuò)展。

函數(shù)調(diào)用不會(huì)發(fā)生此功能,稱(chēng)為“變量插值”。所以,你在這里所做的就是將字符串"file_get_contents($tmp_image)"寫(xiě)入數(shù)據(jù)庫(kù)。


解決方案(1)

因此,要連接調(diào)用的結(jié)果file_get_contents($tmp_image),您必須跳出字符串并明確地執(zhí)行操作:

$sql = "INSERT INTO ImageStore(ImageId,Image)
        VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";

(你甚至可以從語(yǔ)法中看到它突出顯示它是如何工作的。)


解決方案(2)

現(xiàn)在您遇到的問(wèn)題是,如果二進(jìn)制數(shù)據(jù)包含任何二進(jìn)制數(shù)據(jù)',則查詢(xún)無(wú)效。因此,您應(yīng)該運(yùn)行它mysql_escape_string以對(duì)查詢(xún)操作進(jìn)行清理:

$sql = "INSERT INTO ImageStore(ImageId,Image)
        VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";

解決方案(3)

現(xiàn)在你有一個(gè)非常大的字符串,你的數(shù)據(jù)庫(kù)變得笨重。

不希望將圖像存儲(chǔ)在數(shù)據(jù)庫(kù)中,您可以其中提供幫助。


查看完整回答
反對(duì) 回復(fù) 2019-07-30
?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊

要擴(kuò)展Tomalak的注釋?zhuān)荒茉谝?hào)內(nèi)運(yùn)行函數(shù)。

嘗試:

$sql = "INSERT INTO ImageStore(ImageId,Image)               
        VALUES('{$this->image_id}','".file_get_contents($tmp_image)."')";


查看完整回答
反對(duì) 回復(fù) 2019-07-30
?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊

試試這個(gè):

$tmp_img = $this->image['tmp_name'];$sql = "INSERT INTO ImageStore(ImageId,Image)               
  VALUES('$this->image_id','" . addslashes(file_get_contents($tmp_image)) . "')";mysql_query($sql);


查看完整回答
反對(duì) 回復(fù) 2019-07-30
  • 3 回答
  • 0 關(guān)注
  • 1012 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)