A. 怎麼導入thinkphp的資料庫
如果是分離的,選擇附加數據就行了,步驟是右鍵您的sql SERVER組--「所有任務」--「附加資料庫」--找到您的對應分離的資料庫文件,下一步--下一步--ok
B. thinkPHP3.2使用phpexcel導入文件到資料庫
這是我寫過的,絕對能用,不行你再找我!!
<?php
if($_POST[sub]){
$uptypes=array('application/vnd.ms-excel','application/octet-stream'碰謹蘆);
$max_file_szie=20*pow(2,20); //上傳的文件小於20MB
$destination_folder='../conn/'; //上傳文件保存路徑
if($_SERVER['REQUEST_METHOD']=='POST'){
if(!is_uploaded_file($_FILES['upfile']['tmp_name'])){
exit("<script> alert('文件不存在!');history.back();</script>");
}
if($max_file_szie<$_FILES['upfile']['size']){
exit("<script> alert('文件太大了!');history.back();</script>");
}
if(!in_array($_FILES['upfile']['type'],$uptypes)){
echo '文件類型不符合!'.$_FILES['upfile']['type'];
exit("<script> alert('文件類型不符合!');history.back();</script>");
}
if(!file_exists($destination_folder)){
mkdir($destination_folder);
}
$filename=$_FILES['upfile']['tmp_name'];
$image_size=getimagesize($filename);
$pinfo=pathinfo($_FILES['upfile'晌咐]['name']); //文件路徑信息
$ftype=$pinfo['extension']; //舊文件後綴名
$destination = $destination_folder.$_FILES['upfile']['name']; //新文件名稱
if(file_exists($destination)&&$voerwrie !=true){
exit("<script> alert('同名文件已經存在了!');history.back();</script>");
}
//把上傳的文件從臨時文件夾移動到指定目錄
if(!move_uploaded_file($filename,$destination)){
exit("<script> alert('移動文件出錯了!');history.back();</script>");
}
$pinfo=pathinfo($destination);
$fname=$pinfo[basename];
$tpfile=$destination;//上傳文件名
//-----------上傳成功,導入數據star-----
$dataf=$tpfile;
if(!file_exists($dataf))
{
exit("文件不存在"); //文件不存在
}
$file = fopen("$dataf",'r');
while ($d = fgetcsv($file)) { //每次讀取CSV裡面的一行內容
//print_r($d); //此為一個數組,要獲得每一個數據,訪問數組下標即可
$type="`uid`='$d[0]' && name='$d[1]'";
$dsql=dbst($tableqz.message2,$type);
if(!$dsql){
$uid=trim($d[0]); //編號
$name=trim($d[1]); //客戶名稱
$type="(`uid`, `username`, `password`) VALUES (NULL, '$uid', '$name');";
dbin(hh_members,$type);
}
}
fclose($file);
unlink("$dataf");
}
//---上傳end
exit("<script>笑帶 alert('成功導入了所有數據!');history.back();</script>");
}
?>
C. ThinkPHP如何連接sqlite資料庫
首先在:ThinkPHP\Lib\Think\Db\Driver中添加DbSqlite.class.php驅動,然後在php5的配置文件中啟用extension=php_sqlite.dll,且這個配置一定要放在最後
D. thinkphp5怎麼連接資料庫
ThinkPHP的學習,連接操作資料庫是最關鍵的,這里就講一下ThinkPHP如何連搭握接MySQL資料庫
方法/步驟
配置PHP5支持MySQL
打開PHP配置文件「F:PHPphp.ini」,查找「extension=php_mysql.dll」,
把前面的分號去掉亂基,保存文件,啟動服務;
卻提示「PHPstartup:Unabletoloaddynamiclibrary:F:PHPphp_mysql.dll」錯誤,
解決辦法,打開PHP配置文件「F:PHPphp.ini」,查找「extension_dir="ext"」,
把前面的分號去掉,保存文件,啟動服務,問題解決;
准備測試數據
配置資料庫連接信息
打開配置文件「F:.php」,文件內容如下:
添加一個操作數據的方法
打開上一篇新建的控制嘩枝謹器文件「F:PHPApplicationIndexController.class.php」,添加一個函數,代碼:測試一下吧
E. php手把手教你做網站(二十九)thinkphp6部署多個資料庫
前邊介紹了負載均衡,mysql同步,接下來介紹tp6分布式部署多個資料庫,實現讀寫分離。
tp6的分布式部署讀和寫仍然是一個系統,這里我們分開操作,給用戶展示的就是從資料庫,後端添加文章就是主庫,然後同步到從庫。
1、配置資料庫鏈接參數
目標:實現隨機使用資料庫展示信息,只是讀操作。
測試:前台可以讀取表中內容(存放的不一致),查看是否是隨機顯示的。
打開.env文件進行編輯
說明:
2、編輯database.php
找到deploy設置為1分布式部署,下邊不要改,都是讀,寫入的也就是後端的我們單獨建站連接主庫。
配置完成,tp6使用的是mt_rand取隨機數判斷使用哪個資料庫。
3、資料庫交互寫操作
比如瀏覽量沒必要每次都去更新資料庫,可以先使用redis緩存,存夠1000的整數倍,再去更新資料庫。
4、後台獨立,也就是寫
可以前後端分離,單獨做一個網站(沒有前端)使用ip訪問或者獨立的域名連接後台。
5、上傳附件(jquery ajax跨域上傳)
使用了nginx負載均衡,肯定是多個一樣的網站,如果圖片存放到一個站,別的就不能訪問了,可以單獨設置一個附件(壓縮包,圖片等)伺服器,可以使用二級域名連接,這就要求我們上傳附件的時候,是上傳到附件伺服器。
jqueryURL
API控制器apdpic方法
說明:
也可以先傳到後台伺服器然後使用(php)ftp上傳,或者是通過curl上傳到附件伺服器,感覺那樣畢竟麻煩,直接設置跨域會比較簡單。
也測試了使用jsonp跨域,但是不能上傳附件。
6、thinkphp6實現讀寫分離(在一個站點)
我個人是不喜歡這樣的,負載均衡應該是均衡地讀,也就是前台單獨一個站點,後端的寫是另一個獨立的站點,看個人喜好吧。
獨立後台的優點:可以提升安全性,因為我們的後台網址是不公開的,避免用戶猜測一些後台的信息。
.env配置按照1所述編輯,默認第一個是主庫。
database.php
願大家在新的一年心想事成,萬事如意!!!