2016-01-29 94 views
-4

image 1PHP的圖像更新查詢,如何更新查詢

image 2

$ imgData =和addslashes(的file_get_contents($ _ FILES [ 'userfile的'] [ 'tmp_name的值'])); $ sql =「INSERT INTO imgexam (image,name) VALUES ('{$ imgData}','{$ _FILES ['userfile'] ['name']}');」;

+0

它正確插入,但它的法律沒有得到更新。任何人都可以給我更新查詢。在此先感謝 – Santhosh

+1

標題應該更清楚,並應在體內明確詢問問題。你在更新什麼?你有什麼嘗試?你得到什麼錯誤或意外的行爲? – ToothlessRebel

+0

我通過此更新查詢將圖像存儲在數據庫中。它獲得完美存儲,同時我顯示它在一個表中我能夠查看圖像。現在我想更新圖像,就像我想改變另一個圖像,而不是這個圖像的特定ID我應該怎麼做? – Santhosh

回答

0

你正在尋找更新的記錄將與此類似SQL查詢:

UPDATE imgexam SET image = ? WHERE name = ?; 

如果有重名的,你要檢索的ID備案和使用,在條款WHERE。您可以使用類似PDO::lastInsertId()的方法或通過查詢獲取ID。

您可能還在尋找的東西有時稱爲UPSERT操作。這意味着我想要UPDATEINSERT。 MySQL提供了一個ON DUPLICATE KEY子句。假設ID是您此表的主鍵。

更改您的查詢閱讀

INSERT INTO 
    imgexam (id, image, name) 
VALUES (1, '{$imageData}', '{$_FILES['userfile']['name']}') 
ON DUPLICATE KEY UPDATE 
    image = '{$imageData}'; 
+0

image = and name =我該填什麼,那是我的問題 – Santhosh

+0

不知道我跟着你。你的參數(由'?'指定)應該是你認爲合適的值。第一個「?」應該是你想要存儲的新圖像,第二個「?」應該是你想要新圖像的名字。我無法告訴你這些信息與你寄給我的小片段有什麼關係。也意識到這是改變**現有的**記錄。如果您只想添加新記錄,則可以使用與您現在相同的查詢。 – ToothlessRebel

+0

我如何添加更新查詢呢?我想用另一個圖片替換id1到已經存儲在數據庫中的圖片 如何更新它的查詢? – Santhosh

1

你所要做的將其更新爲新的形象那麼什麼是以下步驟:

  • 刪除舊的圖像上傳
  • 新形象更新在數據庫中的行到
  • 新圖像的名稱

如何使用PHP刪除舊的圖像:

unlink('directory/images/'.$image); 

你可能需要做從數據庫中選擇,以獲得正確的圖像名稱。

如何使用PHP上傳新圖片:然後上傳新的圖片後 Read this page更多的信息在上傳文件

,您需要更改該行的數據庫。

如何改變該行的數據庫

$sql = "UPDATE FROM `table` SET `imagename` = '$newimagename' WHERE `imagename` = $oldimagename"; 
$query = mysql_query($sql) or die(mysql_error()); 

那是你所需要的步驟。詢問你是否有問題。對於BLOB事情

+0

謝謝你,我會嘗試 – Santhosh

+0

不客氣 –

+0

爲什麼這個取消鏈接?實際上我並沒有將圖像存儲在任何文件夾中。我有正確的存儲它直接在tha數據庫我應該現在做什麼? – Santhosh

0

更新查詢: 函數mysql_escape_string()只是將字符串作爲原始字節,並增加了逃避它認爲這是適當的。

$query = "UPDATE mytable SET blobthing = '" .mysql_escape_string($varblobthing) . 
"' WHERE id=2"; 
+0

如何發送截圖 – Santhosh

+0

編輯您的問題和發佈圖片 –

+0

只需檢查圖像 –