創(chuàng)建conn.php,連接數(shù)據(jù)庫。
成都創(chuàng)新互聯(lián)公司專注于那曲網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供那曲營銷型網(wǎng)站建設(shè),那曲網(wǎng)站制作、那曲網(wǎng)頁設(shè)計、那曲網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造那曲網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供那曲網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
$dns = 'mysql:host=127.0.0.1;dbname=test';
$username = 'root';
$password = 'root';
// 1.連接數(shù)據(jù)庫,創(chuàng)建PDO對象
$pdo = new PDO($dns,$username,$password);
創(chuàng)建login.html,登陸頁面。
用戶名
密 碼
創(chuàng)建login.php,驗證賬號密碼。
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST["submit"])){
exit("錯誤執(zhí)行");
}//檢測是否有submit操作
include('conn.php');//鏈接數(shù)據(jù)庫
$name = $_POST['name'];//post獲得用戶名表單值
$pwd = sha1($_POST['password']);//post獲得用戶密碼單值
if ($name $pwd){//如果用戶名和密碼都不為空
$sql = "select * from user where username = '$name' and password='$pwd'";//檢測數(shù)據(jù)庫是否有對應(yīng)的username和password的sql
$stmt = $pdo-prepare($sql);
$stmt-execute();
if($stmt-fetch(PDO::FETCH_BOUND)){//0 false 1 true
header("refresh:0;url=welcome.html");//如果成功跳轉(zhuǎn)至welcome.html頁面
exit;
}else{
echo "用戶名或密碼錯誤";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";//如果錯誤使用js 1秒后跳轉(zhuǎn)到登錄頁面重試;
}
}else{//如果用戶名或密碼有空
echo "表單填寫不完整";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";
//如果錯誤使用js 1秒后跳轉(zhuǎn)到登錄頁面重試;
}
$pdo = null;
創(chuàng)建signup.html,注冊頁面
用戶名:
密 碼:
創(chuàng)建signup.php
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST['submit'])){
exit("錯誤執(zhí)行");
}//判斷是否有submit操作
$name=$_POST['name'];//post獲取表單里的name
$pwd = sha1($_POST['password']);//post獲取表單里的password
include('conn.php');//鏈接數(shù)據(jù)庫
$sql="insert into user(id,username,password) values (null,'$name','$pwd')";//向數(shù)據(jù)庫插入表單傳來的值的sql
$stmt = $pdo-prepare($sql);
$stmt-execute();
$stmt-fetch(PDO::FETCH_BOUND);
if (!$stmt){
die('Error: ' . $stmt-getMessage());//如果sql執(zhí)行失敗輸出錯誤
}else{
echo "注冊成功";//成功輸出注冊成功
}
$pdo = null;//關(guān)閉數(shù)據(jù)庫
1、檢查環(huán)境正常
使用mysql -u root -p 可以進(jìn)入MySQL操作界面
直接使用/usr/local/php5/bin/php /web/test.php執(zhí)行可以連上數(shù)據(jù)庫
2、打開hosts加入
復(fù)制代碼代碼如下:127.0.0.1 qttc
使用qttc當(dāng)主機(jī)連接也正常,唯獨就不認(rèn)localhost。
3、localhost連接方式不同導(dǎo)致
為了了解PHP連接數(shù)據(jù)庫時,主機(jī)填寫localhost與其它的區(qū)別閱讀了大量資料,最后得知:
當(dāng)主機(jī)填寫為localhost時mysql會采用 unix domain socket連接
當(dāng)主機(jī)填寫為127.0.0.1時mysql會采用tcp方式連接
這是linux套接字網(wǎng)絡(luò)的特性,win平臺不會有這個問題
4、解決方法
在my.cnf的[mysql]區(qū)段里添加
復(fù)制代碼代碼如下:
protocol=tcp
保存重啟MySQL,問題解決!
首先,你是要在主機(jī)上?還是在本地?還是在vps上或在服務(wù)器上?
他們有些不一樣!
在主機(jī)上,你要把整套程序上傳到主機(jī)更目錄,一般是wwwroot,(主機(jī)商一般有說明的),如果域名已經(jīng)綁定到主機(jī)上,通過域名訪問程序安裝腳本,一般是install.php,或者install/install.php這樣的頁面。
在本地,可以安裝php集成環(huán)境,百度搜索一大堆,然后根據(jù)軟件使用方法操作
在vps和服務(wù)器上,又分windows和liunx操作系統(tǒng)具體操作起來不一樣,建議搜索相關(guān)教程,我這里一下說不清楚。
是。數(shù)據(jù)庫是php注冊的支持,因此失敗是沒進(jìn)行連接的原因。數(shù)據(jù)庫系統(tǒng),是由數(shù)據(jù)庫及其管理軟件組成的系統(tǒng),是為適應(yīng)數(shù)據(jù)處理的需要而發(fā)展起來的一種較為理想的數(shù)據(jù)處理的核心機(jī)構(gòu)。