如果您要將自己的數(shù)據(jù)庫(kù)導(dǎo)入服務(wù)器,
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),宜州網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:宜州等地區(qū)。宜州做網(wǎng)站價(jià)格咨詢:13518219792
1.
可以點(diǎn)擊下面的“建立備份”一。
2.
點(diǎn)擊建立“備份用FTP”。
3.
用FTP將您自己的數(shù)據(jù)庫(kù)備份文件上傳到服務(wù)器上,覆蓋服務(wù)器上的1.bak(SQL
2000)/1.sql(Mysql)。
4.
再點(diǎn)從備份一中的“備份中還原。”
5.
如果導(dǎo)入過(guò)程中發(fā)生意外,需要重新導(dǎo)入,您要先點(diǎn)清空數(shù)據(jù)庫(kù)。
(在備份還原前,請(qǐng)您先停止您的網(wǎng)站一分鐘后再操作,否則數(shù)據(jù)庫(kù)正在使用中會(huì)造成操作失敗。)
還不清楚的話,你訪問(wèn)下這個(gè)網(wǎng)址:
進(jìn)入docker的mysql容器。
進(jìn)入容器導(dǎo)出數(shù)據(jù),首先執(zhí)行dockerps,找到mysql容器的name,然后執(zhí)行dockerexec-itmysql/bin/bash,進(jìn)入容器,執(zhí)行命令whereismysql,找到mysql的運(yùn)行路徑,我這里是:/usr/local/mysql/bin,用cd進(jìn)入cd/usr/local/mysql/bin。請(qǐng)注意,這里的路徑是指docker容器內(nèi)的路徑,跟您的宿主機(jī)路徑?jīng)]有關(guān)系,執(zhí)行導(dǎo)出命令mysqldump-u用戶名-p數(shù)據(jù)庫(kù)名保存文件.sql,輸入密碼后基本導(dǎo)出成功,請(qǐng)注意,保存文件的路徑要設(shè)置在volumes下面,即/var/lib/mysql/下,隨后輸入exit退出容器內(nèi)部,回到宿主機(jī)上,我們就能夠找到導(dǎo)出的數(shù)據(jù)文件了,如果您要導(dǎo)出csv格式的話,將mysqldump的那句命令改為:mysql-u用戶名--password=密碼--database=數(shù)據(jù)庫(kù)名--execute='SELECT`FIELD`,`FIELD`FROM`TABLE`LIMIT0,10000'-X保存文件.sql即可。
docker的作用是:1、更好地利用資源,2、為微服務(wù)定制,3、在云服務(wù)提供商之間方便移植,4、方便利用API端,5、便于技術(shù)的創(chuàng)新。
define(UPLOAD_ROOT,'你的上傳文件夾路徑');
function fake_random_name($string,$key){
#偽代碼 隨便根據(jù)用戶名和上傳時(shí)間生成一個(gè)偽隨機(jī)的文件名作為上傳以后的用戶名
#但解碼的條件是可以根據(jù)文件名判斷出文件所有者的用戶名和上傳時(shí)間
#需要從數(shù)據(jù)庫(kù)取出用戶的密匙 才能進(jìn)行解密 密匙是用戶名的前5個(gè)字符
#具體加密解密的代碼實(shí)現(xiàn) 請(qǐng)參照PHP標(biāo)準(zhǔn)擴(kuò)展庫(kù) Mcrypt擴(kuò)展下的N種方法
return $fake_random_name;
}
if(!is_writbale(UPLOAD_ROOT)){
die('you need chown the dir for your uploading file,make it writable~');
}else{
move_uploaded_file($_FILES['POST過(guò)來(lái)的表單名']['tmp_name'];
/*
* 這個(gè)方法會(huì)自動(dòng)調(diào)用is_upload_file()方法 檢測(cè)是否是合法的http rfc1867協(xié)議上傳的文件
* 當(dāng)然了 你也可以限制是否是你需要的合法文件類型 $_FILE[$_POST[name]][type] 比如是否是pdf img文件 都可以
*/
$dbh = new mysqli('localhost','root','sa','your_db_name');#生成中可以include進(jìn)來(lái) DSN放到根目錄以外去 保護(hù)連接文件
$sec_key = substr($_SESSION['loginname'],0,5);
#密匙
$file_name = fake_random_name($_FILES['POST過(guò)來(lái)的表單名']['tmp_name'],$sec_key);
#加密后的名字
$q_str = "insert into tb(owner,location)values($_SEESION['loginname'],UPLOAD_ROOT.DIRECTORYSLASH.$file_name))";/SQL
$dbh-query($q_str);
if($dbh-num_rows()==1) echo "上傳成功,已經(jīng)插入數(shù)據(jù)庫(kù)文件細(xì)節(jié)(加密)";
}
當(dāng)你問(wèn)到這個(gè)問(wèn)題的時(shí)候,其實(shí)我是不想回答的
你應(yīng)該是個(gè)小白,因?yàn)?“文件地址”這個(gè)其實(shí)就是一個(gè)URL,就是一個(gè)字符串。把“
文件地址上傳到數(shù)據(jù)庫(kù)”,其實(shí)就是把一個(gè)字符串插入到相應(yīng)的表。如果你有基礎(chǔ),文件都上傳了獲取到路徑了,就等插入數(shù)據(jù)庫(kù),根本不會(huì)來(lái)問(wèn)這個(gè)問(wèn)題。如果你沒(méi)基礎(chǔ),那不是我在這里三言兩語(yǔ)甚至長(zhǎng)篇大論能教會(huì)你的。
我只能大概說(shuō)一下思路:
1、首先,建表,數(shù)據(jù)庫(kù)新建一個(gè)表來(lái)存放這個(gè)文件地址
2、鏈接這個(gè)數(shù)據(jù)庫(kù)
3、把這個(gè)“文件地址”,插到數(shù)據(jù)庫(kù)里面
完了!
if(is_uploaded_file($_FILES['img']['tmp_name'])){
if(move_uploaded_file($_FILES['img']['tmp_name'], $target_name)){
//這就算上傳成功了,插入數(shù)據(jù)庫(kù)
if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
echo 'Could not connect to mysql';
exit;
}
if (!mysql_select_db('mysql_dbname', $link)) {
echo 'Could not select database';
exit;
}
$sql = 'insert into table_name(id, img_path) values(img_id, $target_name)';
$result = mysql_query($sql, $link);
if (!$result) {
echo "DB Error, could not create table the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
mysql_free_result($result);
}
else{
echo "上傳失敗";
}
}
本文實(shí)例講述了PHP實(shí)現(xiàn)上傳圖片到數(shù)據(jù)庫(kù)并顯示輸出的方法。分享給大家供大家參考,具體如下:
1.
創(chuàng)建數(shù)據(jù)表
CREATE
TABLE
ccs_image
(
id
int(4)
unsigned
NOT
NULL
auto_increment,
description
varchar(250)
default
NULL,
bin_data
longblob,
filename
varchar(50)
default
NULL,
filesize
varchar(50)
default
NULL,
filetype
varchar(50)
default
NULL,
PRIMARY
KEY
(id)
)engine=myisam
DEFAULT
charset=utf8
2.
用于上傳圖片到服務(wù)器的頁(yè)面
upimage.html
!doctype
html
html
lang="en"
head
meta
charset="UTF-8"
meta
name="viewport"
content="width=device-width,
user-scalable=no,
initial-scale=1.0,
maximum-scale=1.0,
minimum-scale=1.0"
meta
http-equiv="X-UA-Compatible"
content="ie=edge"
style
type="text/css"
*{margin:
1%}
/style
titleDocument/title
/head
body
form
method="post"
action="upimage.php"
enctype="multipart/form-data"
描述:
input
type="text"
name="form_description"
size="40"
input
type="hidden"
name="MAX_FILE_SIZE"
value="1000000"
br
上傳文件到數(shù)據(jù)庫(kù):
input
type="file"
name="form_data"
size="40"br
input
type="submit"
name="submit"
value="submit"
/form
/body
/html
3.
處理圖片上傳的php
upimage.php
?php
if
(isset($_POST['submit']))
{
$form_description
=
$_POST['form_description'];
$form_data_name
=
$_FILES['form_data']['name'];
$form_data_size
=
$_FILES['form_data']['size'];
$form_data_type
=
$_FILES['form_data']['type'];
$form_data
=
$_FILES['form_data']['tmp_name'];
$dsn
=
'mysql:dbname=test;host=localhost';
$pdo
=
new
PDO($dsn,
'root',
'root');
$data
=
addslashes(fread(fopen($form_data,
"r"),
filesize($form_data)));
//echo
"mysqlPicture=".$data;
$result
=
$pdo-query("INSERT
INTO
ccs_image
(description,bin_data,filename,filesize,filetype)
VALUES
('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
if
($result)
{
echo
"圖片已存儲(chǔ)到數(shù)據(jù)庫(kù)";
}
else
{
echo
"請(qǐng)求失敗,請(qǐng)重試";
注:圖片是以二進(jìn)制blob形式存進(jìn)數(shù)據(jù)庫(kù)的,像這樣
4.
顯示圖片的php
getimage.php
?php
$id
=2;//
$_GET['id'];
為簡(jiǎn)潔,直接將id寫上了,正常應(yīng)該是通過(guò)用戶填入的id獲取的
$dsn='mysql:dbname=test;host=localhost';
$pdo=new
PDO($dsn,'root','root');
$query
=
"select
bin_data,filetype
from
ccs_image
where
id=2";
$result
=
$pdo-query($query);
$result=$result-fetchAll(2);
//
var_dump($result);
$data
=
$result[0]['bin_data'];
$type
=
$result[0]['filetype'];
Header(
"Content-type:
$type");
echo
$data;
到瀏覽器查看已經(jīng)上傳的圖片,看是否可以顯示
是沒(méi)有問(wèn)題的,證明圖片已經(jīng)以二進(jìn)制的形式存儲(chǔ)到數(shù)據(jù)庫(kù)了
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php+mysql數(shù)據(jù)庫(kù)操作入門教程》、《php+mysqli數(shù)據(jù)庫(kù)程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:php實(shí)現(xiàn)上傳圖片保存到數(shù)據(jù)庫(kù)的方法php上傳圖片存入數(shù)據(jù)庫(kù)示例分享php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn)php中如何將圖片儲(chǔ)存在數(shù)據(jù)庫(kù)里php下將圖片以二進(jìn)制存入mysql數(shù)據(jù)庫(kù)中并顯示的實(shí)現(xiàn)代碼php
從數(shù)據(jù)庫(kù)提取二進(jìn)制圖片的處理代碼php將圖片保存入mysql數(shù)據(jù)庫(kù)失敗的解決方法php將圖片文件轉(zhuǎn)換成二進(jìn)制輸出的方法php圖片的二進(jìn)制轉(zhuǎn)換實(shí)現(xiàn)方法