ホームページ >バックエンド開発 >PHPチュートリアル >PHP ナレッジポイントのメモ
表示エラー: PDOException がドライバーを見つけられませんでした。
PDO_mysql がインストールされていないなど、PDO が対応するデータベースの拡張機能をインストールしていないことを意味します
http://pecl.php.net/package/PDO_MYSQL
ソースコード
phpize
. /configure --with-php-config=/usr/local/php/bin/php-config
./make
./make install
phpExcel を使用するには、php のxmlreader および xmlwriter 拡張機能を使用している場合は、yum install php を使用しますyum install php-xml を使用して直接インストールします
php 定義を繰り返し定義することはできません
例:
<?phpdefine("TEST", "11");define("TEST", "22");echo TEST;
[yejianfeng@xen193v ~/handcode]$ php test.php PHP Notice: Constant TEST already defined in /home/yejianfeng/handcode/test.php on line 4Notice: Constant TEST already defined in /home/yejianfeng/handcode/test.php on line 411PHP ですべてのローカル変数を取得する方法 $localVariables = Compact(array_keys(get_define_vars()));
次のように php モジュールをインストールできます
PHP_PDO_SHARED=1 pecl install pdo_mysqlmysql の文字エンコーディング
Mysql の一般的なデフォルトのクライアント文字エンコーディングは次のとおりです: latin1いくつかの文字エンコーディングがありますmysql の:
mysql> "character_set_ %" のような変数を表示します;
+--------------------------+------ ------------ ----------+
| 値 |
+------------------- -------+--------------+
| 文字セット接続 utf8 | |
| 文字セット_結果 | 文字セット_システム
| ---- ----------+--------------------------+
情報の入力パスは
クライアント - 接続 - サーバー
情報の出力パスは
入力セット名 utf8 はクライアントと接続の文字エンコーディングを一時的に設定するためのものです
PHP で mysql の文字エンコーディングを初期化するにはどうすればよいですか?
設定を初期化するには 2 つの方法があります:1
$pdo = new PDO("mysql:host={$config['host']};dbname={$config['dbname']};port={$config['port']}", $config['user'], $config['password'], array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));2
$pdo = new PDO("mysql:host={$config['host']};dbname={$config['dbname']};port={$config['port']}", $config['user'], $config['password']); $pdo->exec('set names utf8');PHP PDO 拡張機能
PDO を使用する場合は、PDO に加えて拡張機能、および各種データベース ドライバーと PDO をインストールする必要があります拡張機能 一連のインターフェースを定義しますが、PDO 拡張機能を使用してデータベースを直接操作することはできません。PDO ドライバー拡張機能をインストールして作成する必要があります。
PDO 拡張機能の説明: http://www.php.net/manual /en/intro.pdo.php
PDO 拡張機能は PHP 5.0 でのみ使用できます (php の OO 属性を使用)
さまざまなデータベースの拡張機能は次のとおりです:
PDO の prepare が最終的な SQL を出力できない理由
私はいつもPDO を使用してイライラしました 問題は、prepare を使用するときに、最後に実行された SQL をログに出力したいことですが、方法がないことがわかりました。 。 。
よく考えてみると、prepare は mysql ステートメントなので、PDO の prepare と executable は実際に mysql にいくつかのリクエストを送信し、prepare、set、execute を実行します
mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';mysql> SET @a = 3;mysql> SET @b = 4;mysql> EXECUTE stmt1 USING @a, @b;+------------+| hypotenuse |+------------+| 5 |+------------+mysql> DEALLOCATE PREPARE stmt1;
つまり、ログを取得したい場合は、自分で SQL を綴る必要があります。 。 。