㈠ php 連接資料庫失敗
嘗試一下解決方法:
1、資料庫連接失敗could not find driver
在調試一個PHP程序時,報了這個錯誤, could not find driver
經過一番查找,結合自己的思考和實踐,終於找到了問題所在.
程序中用到了PDO對象, 連接mysql 5. 在PHP的默認設置中,只打開了php_pdo 模塊, 沒有打開php_pdo_mysql模塊.所以才會出現找不到驅動程序的錯誤.
修改php.ini
extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
2、重啟apache就可以了. 用別的資料庫,打開對應的模塊就OK了
如果在linux下面,確信模塊pdo_mysql.so已經編譯進php。
在php.ini下面添加:
extension=pdo_mysql.so
㈡ linux php pdo mysql 需要安裝mysql嗎
你好,必須要安裝的。
PDO MySQL簡介
PHP Data Objects(PDO)擴展為 PHP 訪問資料庫定義了一個輕量級的一致介面。實現 PDO 介面的每個資料庫驅動可以公開具體資料庫的特性作為標准擴展功能。注意利用 PDO 擴展自身並不能實現任何資料庫功能;必須使用一個具體資料庫的 PDO 驅動來訪問資料庫服務。記錄安裝 PDO MySQL 擴展過程。
PDO MySQL安裝准備
PDO MySQL詳細的安裝配置如下
PDO MYSQL單獨安裝配置過程如下:
1、下載 文件 或者 進入 在PHP源碼包中進入ext/pdo_mysql
2、解壓文件
[root@localhost src]#tar zxvf PDO_MYSQL-1.0.2.tgz
3、配置和編譯文件
[root@localhost src]cd PDO_MYSQL-1.0.2
[root@localhost MYSQL-1.0.2]/usr/local/php/bin/phpize
[root@localhost MYSQL-1.0.2]./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql/ --with-zlib-dir=/usr/local/lib
[root@localhost MYSQL-1.0.2]make
[root@localhost MYSQL-1.0.2]make install
註: 我的PHP安裝在 : /usr/local/php/ mysql 安裝在 : /usr/local/mysql 編譯的時候注意你自己的安裝目錄在哪裡
切換目錄,查看pdo_mysql.so是否存在
[root@localhost MYSQL-1.0.2]cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
編輯php.ini
[root@localhost MYSQL-1.0.2]vi /usr/local/php/etc/php.ini
添加pdo_mysql擴展
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/pdo_mysql.so
或者 extension=pdo_mysql.so
重啟apache
[root@localhost MYSQL-1.0.2]/usr/local/apache2/bin/apachectl restart
㈢ php如何鏈接mysql
在能夠訪問並處理資料庫中的數據之前,必須創建到達資料庫的連接。
在 PHP 中,這個任務通過 mysql_connect() 函數完成。
工具原料:電腦+php+mysql
php鏈接mysql的方法如下:
方法一、
先做出如下假設(也適用與方法二和方法三)
$username=your_name;
$userpass=your_pass;
$dbhost=localhost;
$dbdatabase=your_database;
//生成一個連接
$db_connect=mysql_connect($dbhost,$username,$userpass) or die("Unable to connect to the MySQL!");
//選擇一個需要操作的資料庫
mysql_select_db($dbdatabase,$db_connect);
//執行MySQL語句
$result=mysql_query("SELECT id,name FROM user");
//提取數據
$row=mysql_fetch_row($result);
注意事項:代碼注釋已經說明了一切。不過這里還需要做一些補充。
①在mysql_connect()、mysql_select_db()等函數之前使用@(錯誤控制運算符),可以忽略掉系統產生的錯誤信息,然後用die()來自定義錯誤信息;
②提取數據的時候,除了上面的mysql_fetch_row,常見的還有mysql_fetch_assoc和mysql_fetch_array,具體差別請查閱PHP Manual;
③對於mysql_query()函數的返回值,如果執行的語句有返回值(如SELECT、SHOW、DESCRIBE等),則返回相應數據(成功時)或FALSE(失敗時);如果執行的語句沒有返回值(如DELETE、DROP、INSERT、UPDATE等),則返回TRUE(成功時)或FALSE(失敗時)。
方法二、面向對象
其實這種方法和普通方法非常類似,只是把相應的函數換成了面向對象方法,直接看代碼。
$db=new mysqli($dbhost,$username,$userpass,$dbdatabase);
if(mysqli_connect_error()){
echo 'Could not connect to database.';
exit;
}
$result=$db->query("SELECT id,name FROM user");
$row=$result->fetch_row();
這里用到的是mysqli,意思就是mysql的擴展,既可以通過面向過程的方式也可以通過面向對象的方式與資料庫進行交互,唯一不同的是調用函數(對象方法)的方式不一樣。
方法三、PDO方法
PDO其實是PHP Database Objects的縮寫,中文即PHP資料庫對象。它提供了一種統一的PHP與資料庫交互的方法。
這是目前流行的一種連接資料庫的方法。它的優勢在於:只要正確提供數據源,餘下對於資料庫的基本操作都是一樣的。也就是說,同一段代碼既可以同MySQL交互,也可以和SQLite3交互,當然也可以和PostgreSQL進行交互,前提是你提供了正確的數據源。下面看一下連接MySQL的代碼:
$dsn='mysql:host='.$dbhost.';dbname='.$dbdatabase.';'
$dbh=new PDO($dsn,$username,$userpass);
如果是SQLite3,直接使用下面的代碼:
$dsn='sqlite3:"C:sqliteuser.db"';
$dbh=new PDO($dsn);
如果是PostgreSQL,下面的代碼能夠對付:
$dsn='pgsql:host='.$dbhost.' port=5432 dbname='.$dbdatabase.' user='.$username.' password='.$userpass;
$dbh=new PDO($dsn);
跟資料庫成功建立連接之後,下面就只需要從資料庫獲取數據或插入更新數據,實例代碼如下:
$stmt=$dbh->query('SELECT id,name FROM user');
$row=$stmt->fetch();
綜上所述有三種方法鏈接mysql
㈣ php如何連接mysql
PHP 可以使慶漏用 MySQLi 或 PDO(PHP Data Objects)擴展來連接 MySQL 資料庫。
以下是使用 MySQLi 擴展連接 MySQL 資料庫的示例代碼:虛跡
pdo
請注意,您需要替換 hostname,username,差差並password 和 database_name 為自己的資料庫連接詳細信息。