1、檢查環(huán)境正常
網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了嶧城免費建站歡迎大家使用!
使用mysql -u root -p 可以進入MySQL操作界面
直接使用/usr/local/php5/bin/php /web/test.php執(zhí)行可以連上數(shù)據(jù)庫
2、打開hosts加入
復制代碼代碼如下:127.0.0.1 qttc
使用qttc當主機連接也正常,唯獨就不認localhost。
3、localhost連接方式不同導致
為了了解PHP連接數(shù)據(jù)庫時,主機填寫localhost與其它的區(qū)別閱讀了大量資料,最后得知:
當主機填寫為localhost時mysql會采用 unix domain socket連接
當主機填寫為127.0.0.1時mysql會采用tcp方式連接
這是linux套接字網(wǎng)絡的特性,win平臺不會有這個問題
4、解決方法
在my.cnf的[mysql]區(qū)段里添加
復制代碼代碼如下:
protocol=tcp
保存重啟MySQL,問題解決!
PHP與數(shù)據(jù)庫連接最常用的方法有四種,它們分別是MySQL、mysqli、pdo、adodb,其中以第一種方法最常用,方法如下:
//與數(shù)據(jù)庫服務器連接
$conn = @mysql_connect('數(shù)據(jù)庫主機名','用戶名','密碼');
//選擇具體數(shù)據(jù)庫
mysql_select('數(shù)據(jù)庫名',$conn);
//如果只打開了一個數(shù)據(jù)庫連接,則$conn可以省略。
首先登陸要用用戶名,密碼等等信息,這些都要存在數(shù)據(jù)庫中,這樣才能用戶登陸時驗證是否能夠登陸,
1.創(chuàng)建一個數(shù)據(jù)庫,建表例表一(用戶名,密碼)等等。。
1.設計頁面代碼包含連接數(shù)據(jù)庫,數(shù)據(jù)庫操作代碼等等(加入用戶,刪除用戶。。)
2.代碼中包含用戶登陸輸入
用戶名,密碼
3.打開數(shù)據(jù)庫表,查找是否有該用戶名,如果存在,密碼是否正確,不正確byebye
(請看java書本
數(shù)據(jù)庫內(nèi)容,包含建立數(shù)據(jù)庫,添加刪除基本操作)
php鏈接mysql必備條件:
已安裝mysql數(shù)據(jù)庫;
檢查php環(huán)境是否已開啟mysql擴展(一般情況下是開啟的);
檢查方法:a.使用phpinfo();函數(shù),看有沒有mysql項;b.打開php.ini文件,檢查php_mysql.dll前分號是否已取掉。
php鏈接代碼如下:
?php
//設置編碼格式
header("Content-type:text/html;charset=utf-8");
//定義數(shù)據(jù)庫主機地址
$host="localhost";
//定義mysql數(shù)據(jù)庫登錄用戶名
$user="root";
//定義mysql數(shù)據(jù)庫登錄密碼
$pwd="";
//鏈接數(shù)據(jù)庫
$conn = mysql_connect($host,$user,$pwd);
//對連接進行判斷
if(!$conn){
die("數(shù)據(jù)庫連接失??!".mysql_errno());
}else{
echo "數(shù)據(jù)庫連接成功!";
}
?
//采用pdo鏈接數(shù)據(jù)庫
try{
$dsn
=
'mysql:host=127.0.0.1;dbname=citest';
$pdo
=
new
PDO($dsn,'root','qq');
$pdo-setAttribute(3,2);
}catch(PDOEXCEPTION
$e){
echo
$e-
getMessage
();
}
//通過預處理查詢驗證
try{
$sql
=
"SELECT
count(*)
FROM
users
WHERE
username=:username
AND
password=:password";
$stmt
=
$pdo-prepare($sql);
$data
=
$stmt-execute($_GET);
//接過來的post值,前提表單中的name值和數(shù)據(jù)庫的的字段名稱相同
if($data){
echo
'登陸成功';
}else{
echo
'登陸失敗';
}
}catch(PDOEXCEPTION
$e){
echo
$e-getMessage();
}
if($user=='user' $pwd=='pwd'){ echo '登陸成功'; }else{ echo '用戶名或密碼錯誤'; } ? ?php $username=$_POST[username];