1. php連接sql2000問題
PHP完全可以連接MSSQL的。
1.首先需要MSSQLClientTools是一個dll叫做ntwdblib.dll,它通常在MSSQLServer安裝以後被到系統的system32文件夾下;如果是SQLServer就在本地,那你需要核實的是該ntwdblib.dll的版本與SQLServer的版本一致(2005對應2000.80.194.0,2000對應的是2000.2.8.0;)如果SQLServer在遠程,需要將那個ntwdblib.dll拷貝到本機器的system32文件夾下;
(這里經常遇見的一個問題是,如果php<通常是較老的ntwdblib.dll>晚於SQLServer安裝的話,php的ntwdblib.dll會覆蓋SQLserver安裝時在system32下的ntwdblib.dll,導致鏈接是提示:鏈接不上資料庫)
2.核實完system32下的ntwdblib.dll之後,還需要將正確版本的ntwdblib.dll覆蓋php文件夾下的ntwdblib.dll;
3.使用MSSQLServer的方法與MySQL的方法很類似;
如下:
<?php
//鏈接資料庫
$conn=mssql_connect('IBM-F24B11ED1CCSQLEXPRESS','sa','123456');
mssql_select_db('LabMIS',?$conn);
//query語句
$Query="select*fromadmin";
$AdminResult=mssql_query($Query);
//輸出結果
$Num=mssql_num_rows($AdminResult);
for($i=0;$i<$Num;$i++)
{
$Row=mssql_fetch_array($AdminResult);
echo($Row[1]);
echo("<br/>");
}
?>
2. php文件中,一個字元串最長可以有多長
你說的是php的變數能存多少范圍吧?比如
$str='IamChinese';
一般來說,php不限制變數的長度
你可以打開你的php.ini,裡面有這樣的配置語句:(我用的mssql資料庫,就拿它舉例吧)
; Valid range 0 - 2147483647.Default = 4096.
;mssql.textlimit = 4096
; Valid range 0 - 2147483647.Default = 4096.
;mssql.textsize = 4096
可見php確實對變數大小沒有限制(2G的限制目前確實可以視為不存在),只是在默認的配置下被限制到了4096位元組,亦即2048個漢字。
如果你想增大php的變數最大位元組的話,可以在php.ini中修改以下代碼:
ini_set("mssql.textsize",200000);
ini_set("mssql.textlimit",200000);
3. php榪炴帴mssql鏁版嵁搴撶殑鍑犵嶆柟娉昣php瀹炰緥
娉ㄦ剰瑕侀噸鍚鏈嶅姟浣垮叾鐢熸晥銆 涓銆佸緩絝嬭繛鎺1銆乷dbc棣栧厛錛屽湪php紼嬪簭鎵鍦ㄧ殑鏈嶅姟鍣ㄨ劇疆odbc銆傝繖閲32浣嶅拰64浣嶆搷浣滅郴緇熸湁鍖哄埆銆32浣嶇殑浠庢帶鍒墮潰鏉誇腑綆$悊宸ュ叿涓鐨勬暟鎹婧愶紙odbc錛夌洿鎺ュ緩絝嬪氨鍙浠ヤ簡錛64浣嶇殑瑕佽繍琛孋:WindowsSysWOW64odbcad32.exe 浠庤繖閲岄潰璁劇疆銆傛敞鎰忥細涓婇潰鍙鐨勬槸鏁版嵁搴撴湇鍔″櫒涓32涓虹殑錛屾暟鎹婧愯劇疆鏈嶅姟鍣ㄤ負32浣嶅拰64浣嶄袱縐嶇殑鎯呭喌銆傚彧瑕佷袱涓鏈嶅姟鍣ㄥ緩絝嬬殑鏁版嵁婧愪綅鏁頒竴鑷村氨濂姐 涓嬮潰鏄痮dbc寤虹珛榪炴帴浠g爜銆 澶嶅埗浠g爜浠g爜濡備笅:$con = odbc_connect('odbc鍚嶇О','鐢ㄦ埛鍚','瀵嗙爜'); 2銆佽繛鎺mssql2000澶嶅埗浠g爜浠g爜濡備笅:$con = mssql_connect('鏁版嵁搴撳湴鍧','鐢ㄦ埛鍚','瀵嗙爜'); 3銆佽繛鎺mssql2008澶嶅埗浠g爜浠g爜濡備笅:$connectionInfo = array("UID"=鐢ㄦ埛鍚,"PWD"=瀵嗙爜,"Database"="鏁版嵁搴撳悕縐"); $con = sqlsrv_connect( 鏁版嵁搴撳湴鍧,$connectionInfo); 浜屻佽緭鍏ユ煡璇浠g爜 榪欎釜閮戒竴鏍鳳紝鍙浠ョ洿鎺ュ啓鍏ワ紝涔熷彲浠ヤ粠mssql涓楠岃瘉濂藉悗澶嶅埗榪囨潵銆傜畝鍗曠偣璇村氨鏄鎶婁竴涓猻ql璇鍙ヨ祴鍊肩粰涓涓鍙橀噺銆 綾諱技涓嬮潰浠g爜澶嶅埗浠g爜浠g爜濡備笅:$query = "SELECT top 12 * 鏁版嵁搴撳悕縐 order by id desc"; 涓夈佸緩絝嬫煡璇㈠苟鍙栧嚭鏁版嵁1銆乷dbc澶嶅埗浠g爜浠g爜濡備笅:$result = odbc_do($con,$query); while(odbc_fetch_row($result)){$鍙橀噺鍚嶇О = odbc_result($result, "瀛楁靛悕縐");}2銆佽繛鎺mssql2000澶嶅埗浠g爜浠g爜濡備笅:$result = mssql_query($con, $query); while($row =mssql_fetch_array($result)){$鍙橀噺鍚嶇О = $row["瀛楁靛悕縐"];}3銆佽繛鎺mssql2008澶嶅埗浠g爜浠g爜濡備笅:$result = sqlsrv_query($con, $query); while($row = sqlsrv_fetch_array($result)){$鍙橀噺鍚嶇О = $row["瀛楁靛悕縐"];}鍦╬hp5.3鍙婁互鍚庣殑鐗堟湰涓涓嶉檮甯sqlsrv搴撲簡銆傛墍浠ヨ佷粠寰杞榪欓噷涓嬭澆銆 鍥涖佸叧闂榪炴帴
4. php知識框架總結
php知識框架總結
篇一:php基礎知識點總結
PHP語言基礎簡單整理
1.開始結束標記的格式只有在沒有判斷語句時才能使用。
對表單傳遞的變數進行編碼和解碼:PHP中實現對查詢字元串進行URL編碼可以通過函數urlencode()實現,該函數的使用格式如下:string urlencode(string str);對URL編碼後的查詢字元串進行解碼,可以通過urldecode()函數實現,該函數的使用格式如下:string urldecode(string str);
15.PHP連接資料庫:
步驟: 一、建立連接------mssql_connect(server,uid,pwd);
二、指定database-------mssql_select_db(databasename);
三、執行sql------mssql_query($sql,$link);
四、處理記錄集-------資源類型數據,格式:bof---數據---eof
五、以特定格式讀取數據-----mssql_fetch_array()....
六、釋放相關資源、關閉連接------mssql_free_result($result);mssql_close();
16.數組:php的數組由鍵值和value值組成
定義:$array = array("鍵值"=>"value","鍵值"=>"value","鍵值"=>"value");如果不給鍵值賦值,默認從0開始的int值
相關函數:(1)in_array("值",數組名); 返回bool型-----查看數組中是否存在某value值
(2)array_key_exists("key值",數組名); 返回bool型-----查看數組中是否存在某鍵值
(3)array_keys(數組名);---將數組鍵值返回出來形成一個新數組,此鍵值作為新數組的value值
(4)array_values(數組名);---將數組value值返回出來形成一個新數組,此值作為新數組的value值
(5)key(數組名);----返回當前指針指向的元素key值
(6)current(數組名);----返回當前指針指向的元素value值
(7)next(數組名);----挪動當前數組指針到下一步
(8)reset(數組名);----恢復數組指針,指向第0個元素
(9)end(數組名);----將指針挪向最後一個元素
(10)prev(數組名);----將指針向前挪動一位
(11)foreach(數組名 as $key=>$value)
{
$key是鍵值,$value是value值,實現數組遍歷
}
(12)each(數組名);----將當前數組元素依次取出(自動挪動指針)並放到一個新的數組中
(13)array_shift(數組名);----返回數組中第一個元素值
(14)array_pop(數組名);----返回數組最後一個元素值
(15)array_push(數組名,value);----向數組中追加元素
(16)array_unshift(數組名,value);----在數組最前面添加元素
(17)array_pad(數組名,數組長度,value);----向數組中追加多個元素,對數組副本操作,不改變原數組,返回一個新數組
(18)count();----返回個數
(19)array_unique(數組名);----去掉數組中重復部分,操作數組副本,不改變原數組,返回新數組
(20)sort(數組名);----從小到大升序排列數組value值,一般針對int型value值,返回bool型,成功返回true
(21)rsort(數組名);----從大到小,逆序排列數組value值
(22)array_combine(數組1,數組2);----將數組1的value值作為key,數組2的value值作為value值,形成一個新數組
(23)array_merge(數組1,數組2,數組3...);----合並多個數組,將多個數組value值依次合並,合為一個數組
(24)array_slice(數組名,int,int);----從目標數組截取元素,形成一個新數組。開始位置為第二個參數,結束位置為第三個參數。若第三個參數不寫,則默認是截取到最後。
(25)array_splice();----用法同array_slice();但是其截取部分從原數組中刪除
(26)explode("字元依據",目標字元串);----將字元串按照一定的依據拆分成數組
(27)implode("字元依據",目標數組);----將數組元素按照依據組合成一個字元串
(28)range(mixed low,mixed high[number step]);----生成數組,例:range(1,100,8);---即從1到100,每8位取一個數,組成一個數組
(29)shuffle(數組名);----用於將數組進行隨機排序
(30)array_sum(數組名);----對數值型數組元素值進行求和
(31)array_chunk(數組名,int);----分割目標數組,返回一個新數組,其中數組的每個元素都是一個一維數組,int參數為分割成的一維數組的長度
17.Cookie和會話控制:
Cookie是在HTTP協議下,伺服器或腳本可以維護客戶工作站上信息的一種方式。Cookie是由Web伺服器保存在客戶機上的小文本文件,它可以包含有關用戶的信息。無論何時用戶鏈接到伺服器,Web站點都可以訪問Cookie信息。
存在server端的是session,存在client端的是cookie,它們用來存儲全局變數。 設定Cookie值:setcookie("名","值");
通過Cookie數組取值:$_cookie["名"];
設置生成期:setcookie("名","值",time()+1800);生成期為當前時間加1800秒之後。
刪除cookie: setcookie("名","",time()-3600);中間值設置為空,並將當前時間減去3600秒。 Cookie數組:setcookie("名[key]","值"); 使用foreach讀取。
在PHP中可以通過$_COOKIE預定義變數訪問Cookie的值。如果設置了php.ini中的register_long_arrays,那麼就能夠應用$_COOKIE和$HTTP_COOKIE_VARS;如果在php.ini中還設置了register_globals,那麼就可以在PHP中作為全局變數使用各個Cookie值。但是,更改php.ini中的兩個文件設置,容易對PHP的安全構成威脅,不推薦使用該方法,建議使用更新的$_COOKIE。
會話ID的傳送
會話ID的傳送有兩種方式,一種是Cookie方式,另一種是URL方式。
Cookie傳送方式:
這是最簡單的會話方式,但是有些客戶可能限制使用Cookie,如果客戶限制使用Cookie的條件下,仍要繼續工作,那就要通過其他方式來實現了。
URL傳送方式:
在該方式中,URL本身用來傳送會話,會話標志被簡單地附加到URL的尾部,或者作為窗體中的一個變數來傳遞。例:
5. python3連接MSSQL資料庫 中文亂碼怎麼解決
以前用php連mssqy時也經常出現中文亂碼(中文變問號)的問題,那時就明白是編碼沒設置好導航,現在的Python連mssql資料庫也同樣出現這問題,問題一樣,解決的辦法當然也會相似,現在我們來看看解決方法。
python一直對中文支持的不好,最近老遇到編碼問題,而且幾乎沒有通用的方案來解決這個問題,但是對常見的方法都試過之後,發現還是可以解決的,下面總結了常用的支持中文的編碼問題(這些方法中可能其中一個就能解決問題,也可能是多個組合)。
(1)、首先,要保證文件的開頭要加上編碼設置來說明文件的編碼
代碼如下
復制代碼
#encoding=utf-8
(2)、然後,在連接數據的連接參數里加上字元集說明查詢出的結果的編碼,這個不加的後果可能是查詢出的漢字字元都是問號
代碼如下
復制代碼
conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')
(3)、設置python系統的默認編碼(對於文件來說,這招幾乎屢試不爽,呵呵~~)
代碼如下
復制代碼
import sys
reload(sys)
sys.setdefaultencoding('utf8')
注意:上述編碼是「utf8」,而不是「utf-8」,我也沒弄明白,大部分情況下,這個無所謂的,但是這里我試了必須要是「utf8」
一個簡單的完整的python連接mssqlserver的例子如下(得安裝pymssql包):
代碼如下
復制代碼
#encoding:utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import pymssql
try:
conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')
sql="select * from UserInfo"
cur=conn.cursor()
cur.execute(sql)
data=cur.fetchall()
conn.close()
print data
except Exception,e:
print e
運行結果如下:
代碼如下
復制代碼
[(u'20093501', u'xb9xf9xbexb8', u'u7537 ', 35, u'xb4xf3xcfxc0'),
(u'20093502', u'xbbxc6xc8xd8', u'u5973 ', 34, u'xc3xc0xc5xae'),
(u'20093503', u'xc1xeexbaxfcxb3xe5', u'u7537 ', 25, u'2Bxc7xe0xc4xea'),
(u'20093504', u'xc8xcexd3xafxd3xaf', u'u5973 ', 24, u'xc6xafxc1xc1')]
[Finished in 0.2s]
雖然擺脫了問號和亂碼的困擾,但這仍不是我們想要的結果,但這個確實是正確的,因為結果是utf8編碼。這個現象確實詭異,請教了許多高手,得知,最好的結果就是逐個欄位查詢,才能顯示中文,整個查詢的話,會以utf8的格式顯示出來。
上述代碼中第14行data是整個查詢的結果,如果指定某個具體的欄位,如print data[0][2](表示取查詢結果的第一行第三列的欄位的值),則會輸出中文。
其實不僅僅是mssqlserver資料庫,mysql(需下載MySQLdb包)、sqllite(python自帶的文件資料庫)、mongodb(需下載PyMongo包)等或者是普通文本文件也是類似的解決方案。
6. 求php連接MSSQL數據源碼份,有注釋最好~~
$conn = mssql_connect('127.0.0.1','用戶名','密碼') or die('連接不成功'); //連接伺服器
mssql_select_db('數據名',$conn) or die('資料庫不存在'); //選擇數據
mssql_query("sql語句");//查詢數據
連接需要伺服器php_mssql.dll擴展,php.ini中啟用extension=php_mssql.dll (適合php5.3之前版本,php5.3或之後用SQLServerDriverForPHP驅動)
SQLServerDriver連接:
$serverName = "(local)";
$connectionInfo = array( "Database"=>"資料庫名", "UID" => '用戶', "PWD" => '密碼');
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn )
{
echo "Connection established.\n";
}
else
{
echo "Connection could not be established.\n";
die( print_r( sqlsrv_errors(), true));
}
.....................
sqlsrv_close( $conn);
http://www.microsoft.com/sqlserver/2005/en/us/PHP-Driver.aspx