問題一
創(chuàng)新互聯(lián)不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對(duì)營(yíng)銷、技術(shù)、服務(wù)都有自己獨(dú)特見解,公司采取“創(chuàng)意+綜合+營(yíng)銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的網(wǎng)站建設(shè)、做網(wǎng)站質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時(shí),也能得到同行業(yè)的專業(yè)認(rèn)可,能夠?yàn)樾袠I(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級(jí),滿足企業(yè)一站式成都全網(wǎng)營(yíng)銷推廣需求,讓再小的品牌網(wǎng)站設(shè)計(jì)也能產(chǎn)生價(jià)值!
今天給本本裝上mysql和php,一切安裝都很正常(php@IIS7.5-fastCGI)。但用phpmyadmin連接測(cè)試時(shí)卻出現(xiàn)“#2002無法連接”的錯(cuò)誤,用其它程序也是同樣問題。
檢查了下,php的mysql擴(kuò)展正確安裝,mysql服務(wù)正常啟動(dòng)--那就奇了怪了。又用navicat連接,居然連上了。??磥硎莗hp和mysql間的通訊出了問題。
百度了一下,問題被揪出來了:
mysql_connect()函數(shù)數(shù)據(jù)庫服務(wù)器(server)參數(shù)當(dāng)前設(shè)置為localhost,但當(dāng)其更改為127.0.0.1后又可以正常訪問。
系統(tǒng)hosts文件未提供127.0.0.1到localhost的解析。
解決方法(以win7系統(tǒng)為例):找到C:\Windows\System32\drivers\etc\hosts文件,默認(rèn)為只讀,你需要復(fù)制一份到其他路徑如桌面,打開文件(打開方式:記事本),在文件末尾添加:
127.0.0.1 localhost
如果已存在去掉其前面的“#”。
問題二
php腳本可以正常運(yùn)行,如phpinfo()。
只要一出現(xiàn)“mysql_connect”函數(shù),就沒反應(yīng),也不報(bào)錯(cuò)。
如 $conn = mysql_connect("127.0.0.1","root","xxxx") or die("MYSQL數(shù)據(jù)庫連接失?。?.mysql_error());
apache日志目錄error.log中出現(xiàn)
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_mysql.dll'
解決辦法
將“l(fā)ibmysql.dll”復(fù)制到apache的bin目錄下。然后重啟,觀察error.log,如果錯(cuò)誤消失,那恭喜了。
另:網(wǎng)上資料也有說將““l(fā)ibmysql.dll””“php_mysql.dll”復(fù)制到windows/system32的。
1、軟件配置
Win7 64 +wampserver2.2d-x32+SQL Server 2008 R2數(shù)據(jù)庫,wamp2.2中的php版本是5.3.10。
Php環(huán)境也可以換成php+apache。
2、支持連接MySQL Server配置
php版本5.3以前,有php_mssql功能,可以使用,但是5.3及以后的版本不支持。
2.1、php連接mssql設(shè)置(php5.3以前版本)
(1)、打開php.ini,將
;extension=php_mssql.dll前面的分號(hào)(;)去掉,然后重啟 Apache。如果不行的話,進(jìn)行第2步。
(2)檢查一下你的php安裝目錄下的ext下面有沒有php_mssql.dll存在,如果沒有,從重新下載一個(gè)php安裝,要下載那個(gè)壓縮包的才是最完整的。
如果ext目錄下已經(jīng)有了php_mssql.dll,那么你需要打開php.ini,找到
extension_dir = "./ext"
這一句(或者類似的,不一定是"./ext",查找"extension_dir"即可),然后把"./ext"修改為你的php安裝目錄的ext目錄的完整路徑,比如"c:/php/ext",或者"c:/program files/php/ext"這樣。然后再次重啟 Apache。如果還是不行的話,可能就需要第3步了。
(3)把 php 目錄下的 ntwdblib.dll 和 php_mssql.dll 復(fù)制到 system32的系統(tǒng)目錄中去,然后重起Apache。
(4)然后就可以連接MSSQL,并進(jìn)行一些操作了。連接例子如下:
2.2、php連接sqlsrv(php5.3以及以上版本)
(1)、下載Microsoft Drivers for?PHP?for SQL Server,官方下載地址:,我使用的是SQLSRV2.0。
(2)、解壓下載下來的文件將php_pdo_sqlsrv_53_ts_vc9.dll文件和php_sqlsrv_53_ts_vc9.dll文件復(fù)制到php安裝目錄下的ext文件夾中。此處根據(jù)版本不同使用的文件不同。
(3)、在php.ini中添加
extension=php_sqlsrv_53_ts_vc9.dll
extension=php_pdo_sqlsrv_53_ts_vc9.dll
到很多;extension=***.dll語句后面,注意extension_dir 指向的位置是否正確。
(4)、重啟apache,然后訪問訪問地址/?Phpinfo=1,出現(xiàn)下面圖片中的內(nèi)容,則代表配置正確。
(5)、寫測(cè)試代碼,測(cè)試代碼如下:
?php
header("Content-type: text/html; charset=utf-8");
$serverName = "localhost"; //數(shù)據(jù)庫服務(wù)器地址$uid = "foodcert"; //數(shù)據(jù)庫用戶名$pwd = "foodcert"; //數(shù)據(jù)庫密碼$connectionInfo = array("UID"=$uid, "PWD"=$pwd, "Database"="FoodCert");
$conn = sqlsrv_connect( $serverName, $connectionInfo);if( $conn == false)
{
echo "連接失?。?;
die( print_r( sqlsrv_errors(), true));
}else{
echo "連接成功!"; ?
}
$query = sqlsrv_query($conn, "select * from 數(shù)據(jù)庫表");while($row = sqlsrv_fetch_array($query))
{
print_r($row);
}?
(6)、上面完成之后,測(cè)試代碼的時(shí)候會(huì)出現(xiàn)連接失敗,因?yàn)闆]有安裝sql server nation client ,本地客戶端,去下載合適的客戶端,我使用的是Microsoft? SQL Server? 2012 Native Client,下載地址:
(7)、安裝完成之后,在重新啟動(dòng)apache,然后訪問就可以連接成功了。
(8)、注意:在php.ini文件所在的文件夾中必須要有ntwdblib.dll文件存在。
你檢查一下php文件中(可能是267行)你連接mysql的配置信息是否正確(我指的是mysql_connect這個(gè)函數(shù)里面的參數(shù)是否與你登陸phpmyadmin時(shí)輸入的帳號(hào),密碼一致)
第一條警告的意思是你連接數(shù)據(jù)庫失敗,有了第一條當(dāng)然第二條警告就肯定會(huì)有了Warning: mysql_fetch_row(),因?yàn)橐x取數(shù)據(jù)庫的數(shù)據(jù)
mysql_connect的參數(shù)自己可以查查php手冊(cè)
配置php
a、打開php.in將extension=php_mssql.dll的注釋符號(hào)去掉。
b、打開php.in將mssql.secure_connection
=
Off改為on。
c、將php_mssql.dll拷貝到php.in中extension_dir
指定的目錄或者系統(tǒng)system32目錄下。(php_mssql.dll在php的壓縮安裝包中有)。
?php
/**
*
@author
samsun
*
@copyright
2007
*
php使用mssql庫,連接sql
server數(shù)據(jù)庫實(shí)例
*/
$server='ip地址或服務(wù)器名';
$username='數(shù)據(jù)庫用戶名';
$password='數(shù)據(jù)庫密碼';
$database='數(shù)據(jù)庫名';
$conn=mssql_connect($server,$username,$password)
or
die("Couldn't
connect
to
SQL
Server
on
$server");
$db=mssql_select_db($database)
or
die("Couldn't
open
database
$database");
?
或:
?php
//鏈接數(shù)據(jù)庫
$conn=mssql_connect('localhost','sa','123456');
mssql_select_db('gu_dde',$conn);
//query語句
$Query="select
*
from
dde_top";
$AdminResult=mssql_query($Query);
//輸出結(jié)果
$Num=mssql_num_rows($AdminResult);
for($i=0;$i$Num;$i++)
{
$Row=mssql_fetch_array($AdminResult);
echo($Row[1]);
echo("br/");
}
?