ホームページ  >  記事  >  バックエンド開発  >  php pdoの簡単な使い方(1)

php pdoの簡単な使い方(1)

WBOY
WBOYオリジナル
2016-08-08 09:25:14984ブラウズ

はじめに:

PDO 拡張機能は、PHP がデータベースにアクセスするための軽量で一貫したインターフェイスを定義し、どのようなデータベースが使用されても、クエリとデータの取得を可能にします。

これは、一貫した機能と記述方法を通じてさまざまなデータベースを操作できるようにするデータベース アクセス抽象化レイヤーを提供します。これは、将来のデータベース移行に有益であり、もちろんセキュリティも向上します。

比較:

mysqlを例としてphpでデータベースを操作するために一般的に使用される方法には、php_mysql、php_mysqli、pdo

1が含まれます。php_mysqlとphp_mysqliは移植性がなく、mysqlデータベースにのみ適用できますが、pdoは簡単に適用できます。移植されました。

2.php_mysql は、PHP を初めて使用するときにデータベースを操作するために学習する関数ですが、実際にはほとんど使用されません。最も重要な点は、セキュリティ上の問題を引き起こしやすいということです。

SQL インジェクションがあるため、PHP は関数 mysql_real_escape_string を提供します。変数が多数ある場合は、それぞれが mysql_real_escape_string を通過する必要があります。

むしろとても面倒になります。

3.pdo は前処理をサポートしており、前処理関数は SQL インジェクションを効果的に回避し、効率を向上させることができます。

4.php_mysqli と pdo はどちらもオブジェクト指向をサポートしています。

5.pdo 長い接続方法は php_mysqli よりもパフォーマンスが優れています (オンライン情報を参照)

php_mysql 方法の最も致命的な点は、確信が持てない限り、他のデータベースに移植できないことです。データベースは変更しないでください。明らかに、データベースに接続する pdo メソッドがトレンドになるでしょう。

pdo データベースの簡単な操作:

まず、php は php-pdo 関連の拡張機能を有効にする必要があります

<?php

$dbType = &#39;mysql&#39;;
$dbUser = &#39;root&#39;;
$dbPass = &#39;simael&#39;;
$dbhost = &#39;localhost&#39;;
$dbName = &#39;pdotest&#39;;
$dsn="$dbType:host=$dbhost;dbname=$dbName";
try{
    $pdo = new PDO($dsn, $dbUser, $dbPass); 
    echo "PDO成功连接MySQL数据库!";
}catch(PDOException $exception){
    echo $exception->getMessage();
}

データを挿入

<?php
//$pdo->query('set names utf8');
$sql = "INSERT INTO la_comments SET nick_name='formPdo',email='pdo@pdo.com',comment='中文comment',page_id='11',created_at=NOW(),updated_at=NOW()";
$res1 = $pdo->exec($sql);
var_dump($res1);

この時点で、データベースに行くと、エンコードの問題により、中国語の文字が文字化けする可能性があります

コードを追加しても

$pdo->query('set names utf8');
データストレージにエラーが発生する理由は、ヘッダーがgbkエンコードされている可能性があるためです


オンラインで要約されたコーディングの問題。注意する必要があるのは次のとおりです:

1. サーバー プログラムがエンコーディングを宣言します。たとえば、header("Content-type: text/html; charset=utf-8"); 2. クライアントがエンコーディングを宣言します。 など

3. データベースのエンコーディング、テーブルとフィールドのエンコーディング
4. ファイル自体のエンコーディング プロパティ
5データベースに接続するときに、$pdo->query('set names utf8');


上記の内容が一貫している限り、エンコーディングの問題は通常解決されます。

完全なサンプルコード: (ファイル自体も utf8 でエンコードする必要があります)

$dbType = 'mysql';
$dbUser = 'root';
$dbPass = 'simael';
$dbhost = 'localhost';
$dbName = 'pdotest';
$dsn="$dbType:host=$dbhost;dbname=$dbName";
try{
	$pdo = new PDO($dsn, $dbUser, $dbPass,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES'utf8';")); 
	//$pdo = new PDO($dsn, $dbUser, $dbPass); 
    echo "PDO成功连接MySQL数据库!";
}catch(PDOException $exception){
	echo $exception->getMessage();
}

$pdo->query('set names utf8');
$sql = "INSERT INTO la_comments SET nick_name='formPdo',email='pdo@pdo.com',comment='中文comment',page_id='11',created_at=NOW(),updated_at=NOW()";
$res1 = $pdo->exec($sql);
var_dump($res1);

$sql = "SELECT * FROM la_comments";
$res2 = $pdo->query($sql);
while($row = $res2->fetch()){
	print_r($row);
	echo '
'; } $pdo = null; ?>




以上、php pdoの簡単な使い方(1)を内容も含めて紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。