ホームページ  >  記事  >  バックエンド開発  >  簡単なPHPデータベース接続例の詳細説明_PHPチュートリアル

簡単なPHPデータベース接続例の詳細説明_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:06:47720ブラウズ

この記事では、PHP 初心者向けにデータベースへの PHP 接続の詳細なサンプル コードを紹介します。主に、入門レベルの mysql 接続コードから高度なカプセル化されたデータベース接続クラスについて説明します。この記事がすべての友人に役立つことを願っています。

MySQL データベースに接続する 2 つの方法:

(1) PHPのデータベース機能を利用して接続

この方法は最も一般的に使用される方法です。 ここでは主に 4 つのデータベース関数が使用されます:
mysql_connect () は、MySQL サーバーへの接続を確立します。
mysql_select_db (): 後続のデータ クエリ操作クエリ処理のために MySQL サーバー内のデータベースを選択します。
mysql_query (): MySQL が関連する処理または実行を実行できるようにクエリ文字列を送信します。
mysql_fetch_row (): クエリ結果の単一行を配列変数に移動するために使用されます。配列のインデックスは数値です
インデックス。最初のインデックス値は 0 です。


(2)ODBC経由で接続

PHP は主に 4 つの関数を使用して、ODBC 経由で MySQL データベースに接続します。 Odbc_connect (): ODBC データ ソースとの接続を確立するために使用されます。

Odbc_do (): 接続を確立した後にデータベース クエリを実行するために使用されます。
Odbc_result(): 現在のレコード行のフィールドの値を取得するために使用されます。
Odbc_fetch_row (): クエリ結果を配列に保存するために使用され、各配列要素はレコードに対応します。

まずはPHPデータベース関数の接続方法の例を見てみましょう

MySQL データベースに接続する

データベース内のデータにアクセスして処理する前に、データベースへの接続を作成する必要があります。

PHP では、このタスクは mysql_connect() 関数を通じて実行されます。

文法

mysql_connect(servername,username,password);パラメータの説明

サーバー名はオプションです。接続するサーバーを指定します。デフォルトは「localhost:3306」です。

ユーザー名はオプションです。ログインに使用するユーザー名を指定します。デフォルト値は、サーバープロセスを所有するユーザーの名前です。
パスワードはオプションです。ログインに使用するパスワードを指定します。デフォルトは「」です。

コードは次のとおりです $con = mysql_connect("localhost","root","");

if (!$con)
{
die('接続できませんでした: ' .mysql_error());
}
mysql_close($con);
?>

オブジェクト指向 mysqli (詳細なチュートリアル)
コードをコピー

コードは次のとおりですmysql への pdo 接続 (詳細なチュートリアル)
コードをコピー
$mysqli = new mysqli('localhost','root','','volunteer');
if (mysqli_connect_errno()){
die('接続できません!')。 }
?>


コードは次のとおりですコードをコピー

$db = 新しい PDO('mysql:host=localhost;dbname=test', 'root', '');
試してみてください{
foreach ($db->query('select * from user') as $row){
print_r($row);
}
$db = null //データベースを閉じます
} キャッチ (PDOException $e) {
echo $e->getMessage();
}
?>



次に、ODBC を使用してデータベースに接続することもできます

コードは次のとおりです コードをコピー


require_once './adodb5/adodb.inc.php';
$conn = &ADONewConnection('mysql');
$conn->connect('localhost','root','','test');
$conn->Execute("set names utf8");
$res = $conn->Execute("select * from user");
if (!$res){
echo $conn->ErrorMsg();
}その他{
var_dump($res);
}
?>

mysqlデータ接続クラス

コードは次のとおりです コードをコピー


//------------------------------------------------ ------------------------------------------
// ※Database() コンストラクター、データベースの初期パラメータ
// ※選択する() // getRows() // ※入れる() // ※アップデート() // ※消去() // ※Halt() 中断してエラーメッセージを表示*/
//------------------------------------------------ ------------------------------------------
define("DATABASETYPE", "1"); //データベースの種類を定義します: 1 は MySql; 3 は Oracle; 4 は Odbc です。 define("SERVER", "localhost"); //データベースサーバーのホスト名またはIPアドレス
define("DATABASE", "dbName"); //接続するデータベースの名前
define("USER", "tableName"); //データベースへの接続に使用されるユーザー名
define("PASSWORD", "paswd"); //データベースへの接続に使用するパスワード

クラスデータベース{
var $dbLink; //接続ハンドル
var $result; //クエリハンドル
var $insId; //Insert() は AUTO_INCREMENT 列の値を正常に返します
var $rows; // データ配列を返します

var $numRows; // データの数を返します

var $dbHost、$dbUser、$userPassword、$database;
var $dbType = DATABASETYPE;
var $msgFlag = "yes"; //yes:Mysql メッセージを表示; no: show "Halted" で終了します

関数データベース($dbHost = サーバー、$dbUser = ユーザー、$userPassword = パスワード、$database = DATABASE) {
スイッチ ($this->dbType) {
ケース1:
$this->dbLink = @mysql_pconnect($dbHost, $dbUser, $userPassword) // または die("リモート ホストに接続できません!");
@mysql_select_db($database, $this->dbLink) // そうしないと (「リモート ホストに接続できません!」);

休憩;

ケース 2:
休憩;
}
true を返します;
}

/* SQL:Select() は false を返し、結果はありません */

関数 Select($table, $columns, $condition = 1) {
        $sql = "$condition の $table から $columns を選択します ";
        $this->result = @mysql_query($sql, $this->dbLink);
        unset($this->rows);
        if ($this->result) {
            $i = 0;
            if (!($this->rows = array("$i" =>@mysql_fetch_array($this->result))))
                false を返します;
            if (($this->numRows = @mysql_num_rows($this->result)) == 0)
                false を返します;
            while ($tempRows = @mysql_fetch_array($this->result)) {
                array_push($this->rows, $tempRows);
            }
        } その他 {
            $this->停止($sql);
            false を返します;
        }
        true を返します;
    }

/* SQL:GetRows() 戻り値の记录总数 */

function GetRows($table, $condition = 1) {
        $sql = "$condition の $table からのカウントとして count(1) を選択";
        $this->result = @mysql_query($sql, $this->dbLink);
        if ($this->result) {
            $temp = @mysql_fetch_array($this->result);
            $this->numRows = $temp[カウント];
        } その他 {
            $this->停止($sql);
            false を返します;
        }
        $this->numRows を返す;
    }

/* SQL:Insert() */

function Insert($table, $columns, $values) {
        $sql = "$table ($columns) 値 ($values) に挿入";
        $this->result = @mysql_query($sql, $this->dbLink);
        if ($this->result)
            $this->insId = @mysql_insert_id($this->dbLink);
        他に{
            $this->停止($sql);
            false を返します;
        }
        true を返します;
    }

/* SQL:Update() */

関数 Update($table, $settings, $condition) {
        $sql = "$table set $settings where $conditionを更新";
        $this->result = @mysql_query($sql, $this->dbLink);
        if ($this->result)
            $this->numRows = @mysql_affected_rows($this->result);
        他に{
            $this->停止($sql);
            false を返します;
        }
        true を返します;
    }

/* SQL:削除 */

関数 Delete($table, $condition) {
        $sql = "$condition の $table から削除";
        $this->result = @mysql_query($sql, $this->dbLink);
        if ($this->result)
            $this->numRows = @mysql_affected_rows($this->result);
        他に{
            $this->停止($sql);
            false を返します;
        }
        true を返します;
    }

/* Halt():エラーメッセージ */

関数 Halt($msg) {
        if ($this->msgFlag == "はい") {
            printf("データベース クエリ エラー: %s
n", $msg);
            printf("MySql エラー: %s
n", mysql_error());
        }その他
            echo ""; //自定一出错提案文
        false を返します;
    }
}

スイッチ ($db->dbType) {
    ケース1:
        @mysql_close();
        休憩;
    ケース 2:
        休憩;
}
$db = 新しいデータベース();
?>

友情のヒント

結果が現れたら、mysqlデータベースへ接続する前にmysql_query("set names utf8")を追加してください。 如果你是gbk使用gbk编编码了

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/630682.html技術記事この文章は、php 接続データベースの例コードに関する各位の php 入力者に関するものであり、ここでは主に、入力層の mysql 接続から高層の封入データベース層への接続を主に検討しています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。