需要PHP基礎(chǔ)知識和數(shù)據(jù)庫基礎(chǔ)知識。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了土默特左旗免費建站歡迎大家使用!
以SQL為例。使用PHP MySQL 函數(shù)可以編輯數(shù)據(jù)庫。
mysql_connect() 函數(shù)打開MySQL 連接。舉例
?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}// 一些代碼...mysql_close($con);
?
mysql_connect()三個參數(shù)分別是服務(wù)器名,連接賬號,連接密碼。
連接之后,可以使用mysql_select_db()設(shè)置要處理的數(shù)據(jù)庫,后面則是用數(shù)據(jù)庫語句處理數(shù)據(jù)。SQL語法簡介網(wǎng)頁鏈接
你能存進(jìn)數(shù)據(jù)庫,說明你就能取數(shù)據(jù).將取出的數(shù)據(jù)進(jìn)行base64_decode,然后再根據(jù)文件格式發(fā)出一個http head,再直接echo出去.
如:一個jpg的圖片.經(jīng)過header后瀏覽器就會認(rèn)為那是一個圖片了.
//$db_img 這個是從數(shù)據(jù)庫取出的base64編碼格式的二進(jìn)制圖片數(shù)據(jù).
$img = base64_decode($db_img);
header("Content-type: image/jpg");
echo $img;
其他格式的文件類型就根據(jù)實際情況改header里面的Content-type
比較普遍的方法是通過代碼實現(xiàn)。
1、源代碼:
// 把圖片上傳到數(shù)據(jù)庫
// 從數(shù)據(jù)庫中讀取圖片;
// 定義文件臨時目錄 是必要的
define('UPLOAD_PATH',dirname(__FILE__)."/uploads/");
if($_POST["submit"]){
if($_FILES['photo']['size']0 $_FILES['photo']['name'])
{
$photo_type=$_FILES['photo']['type'];
if(!($_FILES['photo']['type']=='image/gif' || $_FILES['photo']['type']=='image/pjpeg'))
{
echo ?"商品圖片只能為GIF或者JPGE格式。";
}else{
list($tmp,$file_ext) = explode("/",$_FILES['photo']['type']);
$photo_name = mt_rand()."_".time().".".$file_ext;
if(!move_uploaded_file($_FILES['photo']['tmp_name'], UPLOAD_PATH.$photo_name))
{
echo "商品圖片保存失敗。";
echo "a href=javascript:window.history.go(-1)返回/a";
exit(); // 下面的操作將不會進(jìn)行;
}
}
}
$sql="INSERT INTO `photo`(id,data,type)VALUES('','$photo_name','$photo_type')";
$query=mysql_query($sql);
if($query){
echo "圖片插入成功";
}else{
echo "失敗的操作";
echo "a href=javascript:window.history.go(-1)返回/a";
exit();
}
$sql_show_pic="SELECT * FROM `photo` ";
$query_show_pic=mysql_query($sql_show_pic);
while($result_pic_show=mysql_fetch_array($query_show_pic)){
//header("Content-Type:" .$result_pic_show["type"]);//這個不用啦
//?uploads 必須寫的
echo "img src=uploads/".$result_pic_show['data']."br";
}
}
?
form action="" method="post" enctype="multipart/form-data"
p選擇上傳的圖片:/p
input type="file" name="photo" size="50" br/br
input type="submit" name="submit" value="上傳"/
/form
2、需要使用的數(shù)據(jù)類型:
(1)一般來講都是把圖片保存到服務(wù)器下,然后根據(jù)路徑讀出的,但是有時候出于安全及版權(quán)什么的考慮,會把圖片保存到mysql的數(shù)據(jù)庫中,然后再讀出來,這樣的圖片點擊右鍵屬性,是看不到圖片地址的。下面逍遙一生就介紹下如何用php把圖片存儲到mysql中及如何讀出。
(2)MySQL數(shù)據(jù)庫使用專門的字段來保存大容量的數(shù)據(jù),數(shù)據(jù)類型為BLOB。
MySQL數(shù)據(jù)庫為BLOB做出的定義如下:BLOB數(shù)據(jù)類型是一種大型的二進(jìn)制對象,可以保存可變數(shù)量的數(shù)據(jù)。BLOB具有四種類型,分別是TINYBLOB,BLOB, MEDIUMBLOB 與LONGBLOB,區(qū)別在于各自所能夠保存的最大數(shù)據(jù)長度區(qū)別。
3、編寫上傳腳本?
接收上傳文件并將其存入到MySQL數(shù)據(jù)庫中。具體的腳本代碼如下,其中我們假定文件上傳域的名稱為Picture。
$urls = "192.168.0.128";//你的主機地址(一般是localhost)
$user = "root";//數(shù)據(jù)庫用戶名
$password = "111111";//數(shù)據(jù)庫密碼
$con = mysqli_connect($urls,$user,$password);//mysql數(shù)據(jù)庫連接
mysqli_select_db($con,"le_test");//第二個參數(shù)為數(shù)據(jù)庫名稱
mysqli_query($con,"select click_num from fstk_zhi_click where id0");//查詢所有click_num
mysqli_close($con);//關(guān)閉連接
$con=mysql_connect('localhost','root','');//數(shù)據(jù)庫信息
mysql_select_db('shop');//數(shù)據(jù)庫名
mysql_query("set?names?utf8");//設(shè)置字符集編碼
$sql="select?goods_name,goods_number,shop_price?from?goods";//查詢語句
$res=mysql_query($sql);//執(zhí)行查詢
while($row=mysql_fetch_assoc($res)){
$rows[]=$row;//接受結(jié)果集
}
//遍歷數(shù)組
foreach($rows?as?$key=$v){
echo?$v['goods_name']."---".$v['goods_number']."---".$v['shop_price']."";
}
布局可以自己寫的。數(shù)據(jù)從foreach循環(huán)里取出。