2014-05-23 48 views
0

我能夠開發一個代碼,使用戶可以自由上傳圖片,而圖片將被存儲到MySql數據庫。但我也想添加到php和mysql代碼圖片類別,在上傳圖片之前,用戶可以從以太類別中選擇 - All,People,Cities,Nature和Others,然後點擊提交。我如何將它添加到我的php代碼和mysql表中?看到我的原始代碼如下:將照片類別添加到php代碼?

<?php 

$dbCnn = mysql_connect('', '', ''); 

mysql_select_db('', $dbCnn); 

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") { 
    $image = addslashes(file_get_contents($_FILES['file']['tmp_name'])); 
    $insStr = "INSERT INTO imagedata(id, image) VALUES ('', '{$image}')"; 
    mysql_query($insStr); 
} 
+2

'mysql_ *'函數已被棄用,並可能在下一個主要版本中被刪除。相反,切換到'MySQLi'或'PDO',兩者都可以通過文檔中的優秀示例輕鬆掌握。 –

+3

發佈的代碼有很多錯誤。正如前面的人所說,mysql_ *已被棄用。您正在將圖像直接存儲在數據庫中,這會使速度降低得更快。我會建議將鏈接存儲在數據庫中的圖像並將圖像存儲在服務器上。 – ksealey

回答

0

不要將圖像存儲在數據庫中,因爲它沒用。取而代之的是,在數據庫中只存儲文件和文件保存在服務器上的路徑。 因此...

<form action="" method="post" enctype="multipart/form-data"> 
<input type="file" name="file"> 
<select name="category"> 
<option>Nature</opton> 
<option>People</option 
</select> 
</form> 

<?php 
if(isset($_POST['category']) && isset($_FILES['file']['tmp_name'])){ 
//mysql connect etc 
move_uploaded_file($_FILES['file']['tmp_name'], path/where/to/save/file); 
mysql_query("INSERT INTO table VALUES('{$_FILES['file']['name']}', '{$_POST['category']}')"); 
} 
+0

您應該建議該人員在將$ _POST變量插入數據庫之前進行有效性檢查。您正在發佈的代碼中打開SQL注入的數據庫 – ksealey

+0

是的,我知道,我也推薦使用PDO或MySQLi並綁定參數。 – turson

+0

非常感謝,這有很大的幫助,並會考慮您對PDO和MySQLI的建議。我有一個問題的第二部分。一旦用戶選擇了類別,他們如何搜索並在特定的類別中找到它? – Rallen