與程式設計相關
[
2008/02/27 11:32 | by bruce_wu ]
2008/02/27 11:32 | by bruce_wu ]
PDO 連接資料的方式,都是統一化,且非常簡單及方便:
1.連接數據庫:
PDO提供了統一的接口:PDO 對象。
<?php
$db = new PDO(
"driver_name:dbname=db_name;host=hostname/IP;[charset=char_type]", // (A) 連接字符串
"db_username", // (B) db用戶名
"db_password" // (C) db密碼
);
?>
說明:PDO 有三個參數
(A) 連接字符串:
driver_name 是使用的 PDO 驅動,可以為:mysql, mssql, sybase, dblib, firebird, oci, odbc, pgsql, sqlite, sqlite2
db_name 是要連結的資料庫名稱;
hostname/IP 是指要連接到哪裡,如果是本地則為 localhost 或 127.0.0.1
[charset=char_type] 是可選的,用來設置字符類型。
(B) 連接資料庫的用戶名
(C) 連接資料庫的密碼
連接範例:
1.連接數據庫:
PDO提供了統一的接口:PDO 對象。
<?php
$db = new PDO(
"driver_name:dbname=db_name;host=hostname/IP;[charset=char_type]", // (A) 連接字符串
"db_username", // (B) db用戶名
"db_password" // (C) db密碼
);
?>
說明:PDO 有三個參數
(A) 連接字符串:
driver_name 是使用的 PDO 驅動,可以為:mysql, mssql, sybase, dblib, firebird, oci, odbc, pgsql, sqlite, sqlite2
db_name 是要連結的資料庫名稱;
hostname/IP 是指要連接到哪裡,如果是本地則為 localhost 或 127.0.0.1
[charset=char_type] 是可選的,用來設置字符類型。
(B) 連接資料庫的用戶名
(C) 連接資料庫的密碼
連接範例:
[
2008/02/25 10:27 | by bruce_wu ]
2008/02/25 10:27 | by bruce_wu ]
PDO(PHP Data Objects) 隨 PHP 5.1 發行,在PHP 5.0 的 PECL 擴展中也可以使用。
PDO 綁定到了 PHP 5.1 核心的支持,在 PHP 5.0 中可以作為 PECL 擴展使用,PDO 要求新的 PHP 5 核心的面向對象的特性,所以它無法運行於之前的 PHP 版本。
它與 ADODB 和Pear DB 等數據庫抽象層不同,它提供的是如何存取資料庫和處理查詢結果,效率也更高,還可以通過預處理語句來防止 SQL 注入。
PDO 綁定到了 PHP 5.1 核心的支持,在 PHP 5.0 中可以作為 PECL 擴展使用,PDO 要求新的 PHP 5 核心的面向對象的特性,所以它無法運行於之前的 PHP 版本。
它與 ADODB 和Pear DB 等數據庫抽象層不同,它提供的是如何存取資料庫和處理查詢結果,效率也更高,還可以通過預處理語句來防止 SQL 注入。
目前支持的資料庫如下:
• DBLIB: FreeTDS / Microsoft SQL Server / Sybase
• Firebird (http://firebird.sourceforge.net/): Firebird/Interbase 6
• MYSQL (http://www.mysql.com/): MySQL 3.x/4.x/5.x
• OCI (http://www.oracle.com): Oracle Call Interface
• ODBC: ODBC v3 (IBM DB2 and unixODBC)
• PGSQL (http://www.postgresql.org/): PostgreSQL
• SQLITE (http://www.postgresql.org/): SQLite 3 and SQLite 2
安裝方式:
只要 Linux 系列的系統, PHP 版本為 5.1 以上的版本,則預設安裝後就會有 PDO Drivers 擴展
• Firebird (http://firebird.sourceforge.net/): Firebird/Interbase 6
• MYSQL (http://www.mysql.com/): MySQL 3.x/4.x/5.x
• OCI (http://www.oracle.com): Oracle Call Interface
• ODBC: ODBC v3 (IBM DB2 and unixODBC)
• PGSQL (http://www.postgresql.org/): PostgreSQL
• SQLITE (http://www.postgresql.org/): SQLite 3 and SQLite 2
安裝方式:
只要 Linux 系列的系統, PHP 版本為 5.1 以上的版本,則預設安裝後就會有 PDO Drivers 擴展
[
2007/07/06 14:56 | by bruce_wu ]
2007/07/06 14:56 | by bruce_wu ]
有三個 Windows API 函數可以運行可執行檔WinExec、ShellExecute和CreateProcess。
ShellExecute的功能是運行一個外部程式(或者是開啟一個已註冊的文件、開啟一個目錄、列印一個文件等等),並對外部程式有一定的控制。
有幾個API函數都可以實現這些功能,但是在大多數情況下ShellExecute是更多的被使用的,同時它並不是太複雜。
函數原型:
HINSTANCE ShellExecute( HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd );
參數說明:
[
2007/07/03 15:18 | by bruce_wu ]
2007/07/03 15:18 | by bruce_wu ]
前言:
由於這幾3、4年來寫的程式都是 PHP 及 VB .Net ,而 C++ 是我大約是10年前有在寫的東西,但後來都偏向 WEB APP 所以及沒有再碰 C++ 了,直到這幾天有朋友要我幫他寫一個簡單的資料庫查詢應用程式,本來寫好了一個 VB .NET 版的,我我始終覺得 VB .NET 寫出來的東西執行效率不是很理想,於是使用 C++Builder 2007 來寫這樣的東西,但好久沒有玩 C++ 了,真的是變化很大,但參考已經寫好的 VB .NET 版本中變化成 C++ 版本。
問題:
程式都寫好沒問題,然後將 Compile 後的執行檔給朋友,結果在朋友的電腦上卻無法執行,會出現找不到某些.BPL檔的,但在我的電腦上卻可以執行
[
2007/06/11 13:40 | by bruce_wu ]
2007/06/11 13:40 | by bruce_wu ]
很多指令如 shell_exec、system、passthru、popen 等都是系統相關的指令,如果虛擬主機開放給使用者使用,或是在系統權限沒設定完整的情況下,必然會造成很大的傷害。
要達到這個需求,只要在 php.ini 裡設定 disble_function 這個選項就能設定禁止執行的指令了。
要達到這個需求,只要在 php.ini 裡設定 disble_function 這個選項就能設定禁止執行的指令了。
[
2007/05/07 14:31 | by bruce_wu ]
2007/05/07 14:31 | by bruce_wu ]
剛剛有朋友在問我 PHP 程式中 ,「單引號」與「雙引號」到底有而差別呢?
結論:
其實在 PHP 程式碼編譯的過程中 ,處理 單引號 ( ' ) 與 雙引號 ( " ) 時,是不同的處理方式的。
原因在於 PHP 會編譯「雙引號」字串內的變數,而「單引號」則視為純字串輸出,也就是 PHP 不會處理單引號內的內容,也因如此為什麼會有人說用單引號會讓 PHP 執行速度比較快,就是此因。
關於這問題參考以下程式範例,會更清楚
結論:
其實在 PHP 程式碼編譯的過程中 ,處理 單引號 ( ' ) 與 雙引號 ( " ) 時,是不同的處理方式的。
原因在於 PHP 會編譯「雙引號」字串內的變數,而「單引號」則視為純字串輸出,也就是 PHP 不會處理單引號內的內容,也因如此為什麼會有人說用單引號會讓 PHP 執行速度比較快,就是此因。
關於這問題參考以下程式範例,會更清楚






