show code js

2010年11月20日 星期六

MySQLi

在新的一代中PHP與MySQL可以採用MySQLi來進行資料庫連結3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
若要使用MySQLi必須在php環境中載入mysqli的dll,在主機設定的方式為php.ini 檔內將php_mysqli.dll前的;分號去除3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
後重新開機即可完成載入,再用phpinfo()查看即可確認函數是否正確裝載於php環境3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
在這裡 由於開發環境採用 PHP 5.2.6 + MySQL6.0.x 所以以MySQLi來解說及進行3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
二者最大不同的是MySQLi可以以物件導向進行連結及資料存取,非常方便3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
只有在連續取出資料時,可能要自已寫一段資料陣列取出,不寫也是可以3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
首先必須設置 資料庫的主機位置dbhost、資料庫名稱dbname、資料庫使用者帳戶dbuser、資料庫密碼dbpswd3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
使用函數為3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
mysqli_connect().3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
以物件方式進行連結3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
$mysqli = new mysqli($dbhost, $dbuser, $dbpswd, $dbname);3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
確認資料庫是否連結 使用函數為 mysqli_connect_error(),以下為物件寫法3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
if ( $error = $mysqli->connect_error ) 3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
{3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
printf("無法連結,錯誤訊息為: ", $error);3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
exit;3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
}3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
else3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
{3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
printf("連結成功,主機資訊為: ", $mysqli->host_info);3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
}3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
關閉資料庫連結 使用函數為 mysqli_close();以物件寫法如下3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
$mysqli->close();3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
當然在連結前也可以使用ping這個函數來確認資料庫主機是否存在或是在長時間的等待中,用ping來持續連結等等3RiSnS8oA43vo87Se<1Tt<8khvBsU-&Fsvj8{L(Fe.;SnTR%h:)Drr-zca3^EPU@?5kk1mnI)mfV{S1
將會另外介紹

沒有留言:

張貼留言