PHP MySQLi 関数: mysqli_query、mysqli_connect、mysqli_fetch_array

PHP には、MySQL データベースを操作するための豊富な組み込み関数のコレクションが備わっています。

PHPのmysqli_connect関数

PHP mysql connect 関数は、MySQL データベース サーバーに接続するために使用されます。

それには次のようなものがありますwing 構文。

<?php;
$db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password);
?>

ここに、

  • 「$db_handle」はデータベース接続リソース変数です。
  • 「mysqli_connect(…)」はphpデータベース接続用の関数です
  • 「$server_name」は、MySQL サーバーをホストするサーバーの名前または IP アドレスです。
  • 「$user_name」は、MySQL サーバーの有効なユーザー名です。
  • 「$password」は、MySQL サーバーのユーザー名に関連付けられた有効なパスワードです。

PHPのmysqli_select_db関数

mysqli_select_db 関数はデータベースを選択するために使用されます。

それには次のようなものがありますwing 構文。

<?php
mysqli_select_db($db_handle,$database_name);
?>

ここに、

  • 「mysqli_select_db(…)」は、true または false を返すデータベース選択関数です。
  • 「$database_name」はデータベースの名前です。
  • 「$link_identifier」はオプションで、サーバー接続リンクを渡すために使用されます。

PHPのmysqli_query関数

mysqli_query関数は実行に使用されます。 SQL クエリ

この関数を使用して次のことを実行できます。wing クエリの種類。

  • インセット
  • 選択
  • アップデイト
  • 削除

それには次のようなものがありますwing 構文。

<?php
mysqli_query($db_handle,$query) ;
?>

ここに、

  • 「mysqli_query(…)」はSQLクエリを実行する関数です。
  • 「$query」は実行するSQLクエリです。
  • 「$link_identifier」はオプションで、サーバー接続リンクを渡すために使用できます。

PHPのmysqli_num_rows関数

mysqli_num_rows 関数は、選択クエリから返される行数を取得するために使用されます。

それには次のようなものがありますwing 構文。

<?php
mysqli_num_rows($result);
?>

ここに、

  • 「mysqli_num_rows(…)」は行数関数です。
  • 「$result」は mysqli_query の結果セットです

PHPのmysqli_fetch_array関数

mysqli_fetch_array 関数は、クエリ結果セットから行配列をフェッチするために使用されます。

それには次のようなものがありますwing 構文。

<?php
mysqli_fetch_array($result);
?>

ここに、

  • 「mysqli_fetch_array(…)」は行配列を取得する関数です
  • 「$result」は、mysqli_query 関数によって返された結果です。

PHPのmysqli_close関数

mysqli_close 関数は、開いているデータベース接続を閉じるために使用されます。

それには次のようなものがありますwing 構文。

<?php
mysqli_close($db_handle);
?>

ここに、

  • 「mysqli_close(…)」はPHP関数です
  • 「$link_identifier」はオプションで、サーバー接続リソースを渡すために使用されます。

これらの機能を活用した実践例を見てみましょう。

MySQL データベースの作成 このチュートリアルは MySQL と SQL の知識を前提としています。これらの用語に馴染みのない場合は、MySQL と SQL のチュートリアルを参照してください。

テーブルが XNUMX つだけある my_personal_contacts という単純なデータベースを作成します。

以下にデータベースとテーブルを作成する手順を示します。

  • MySQL ワークベンチ、phpMyAdmin などのお気に入りのアクセス ツールを使用して MySQL に接続します。
  • my_person_contacts という名前のデータベースを作成します
  • 以下のスクリプトを実行してテーブルを作成し、ダミーデータを挿入します。
<?php
CREATE TABLE IF NOT EXISTS `my_contacts` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `full_names` varchar(255) NOT NULL,

  `gender` varchar(6) NOT NULL,

  `contact_no` varchar(75) NOT NULL,

  `email` varchar(255) NOT NULL,

  `city` varchar(255) NOT NULL,

  `country` varchar(255) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

INSERT INTO `my_contacts` (`id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) VALUES

(1, 'Zeus', 'Male', '111', 'zeus @ olympus . mt . co', 'Agos', 'Greece'),

(2, 'Anthena', 'Female', '123', 'anthena @ olympus . mt . co', 'Athens', 'Greece'),

(3, 'Jupiter', 'Male', '783', 'jupiter @ planet . pt . co', 'Rome', 'Italy'),

(4, 'Venus', 'Female', '987', 'venus @ planet . pt . co', 'Mars', 'Italy');
?>

これで、PHP から操作するデータベースがセットアップされました。

データベースからレコードを読み取る ここでは、データベースからレコードを出力するプログラムを作成します。

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server if (!$dbh)     
    
	die("Unable to connect to MySQL: " . mysqli_error());
    
	//if connection failed output error message 
    if (!mysqli_select_db($dbh,'my_personal_contacts'))     
    
	die("Unable to select database: " . mysqli_error()); 
    //if selection fails output error message 
    
	$sql_stmt = "SELECT * FROM my_contacts"; 
    //SQL select query 
    
     $result = mysqli_query($dbh,$sql_stmt);
     //execute SQL statement 
     
	if (!$result)     
		die("Database access failed: " . mysqli_error()); 
    	//output error message if query execution failed 
        
		$rows = mysqli_num_rows($result); 
   		// get number of rows returned 
    
	if ($rows) {     
    
	while ($row = mysqli_fetch_array($result)) {         
		echo 'ID: ' . $row['id'] . '<br>';         
		echo 'Full Names: ' . $row['full_names'] . '<br>';        
		echo 'Gender: ' . $row['gender'] . '<br>';         
		echo 'Contact No: ' . $row['contact_no'] . '<br>';         
		echo 'Email: ' . $row['email'] . '<br>';         
		echo 'City: ' . $row['city'] . '<br>';         
		echo 'Country: ' . $row['country'] . '<br><br>';     
	} 
} 
mysqli_close($dbh); //close the database connection 
?>

上記のコードを実行すると、次の図に示す結果が返されます。

PHP: MySQL 関数

新しいレコードの挿入

次に、テーブルに新しいレコードを追加する例を見てみましょう。 以下のコードは実装を示しています。

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server if (!$dbh)     
    
	die("Unable to connect to MySQL: " . mysqli_error()); 
	//if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysql_error()); 
	//if selection fails output error message 
    
	$sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"; 
	$sql_stmt .= " VALUES('Poseidon','Mail','541',' poseidon @ sea . oc ','Troy','Ithaca')"; 
    
	$result = mysqli_query($dbh,$sql_stmt); //execute SQL statement 
    
	if (!$result)     
		die("Adding record failed: " . mysqli_error()); 
		//output error message if query execution failed echo "Poseidon has been successfully added to your contacts list";
        
 mysqli_close($dbh); //close the database connection 
?>

上記のコードを実行すると、「Poseidon が連絡先リストに正常に追加されました」という出力が表示されます。選択クエリの例に戻り、連絡先を再度取得します。

ポセイドンがリストに追加されているかどうかを確認してください。

レコードの更新 次に、データベース内のレコードを更新する例を見てみましょう。

ポセイドンが連絡先を変更し、mail 住所。

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server 
    
	if (!$dbh)    
	die("Unable to connect to MySQL: " . mysqli_error()); 
    //if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysql_error()); 
	//if selection fails output error message 
    
	$sql_stmt = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ' poseidon @ ocean . oc ';
	//SQL select query $sql_stmt .= " WHERE `id` = 5"; 
    
	$result = mysqli_query($dbh,$sql_stmt); 
	//execute SQL statement if (!$result)     
    
	die("Deleting record failed: " . mysqli_error()); 
	//output error message if query execution failed 
    
	echo "ID number 5 has been successfully updated"; 
mysqli_close($dbh); //close the database connection 
?>

レコードの削除

次に、データベースからレコードを削除する例を見てみましょう。 ヴィーナスが私たちに対して接近禁止命令を出しており、私たちは彼女の連絡先情報を私たちのアカウントから削除しなければならないと仮定しましょう。 データベース.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server
    
	if (!$dbh)     
	die("Unable to connect to MySQL: " . mysqli_error()); 
	//if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysqli_error()); 
	//if selection failes output error message $id = 4; 
	//Venus's ID in the database 
    
	$sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id"; 
	//SQL Delete query 
    
	$result = mysqli_query($dbh,$sql_stmt); 
	//execute SQL statement 
    
	if (!$result)     
	die("Deleting record failed: " . mysqli_error());
	//output error message if query execution failed 
    
	echo "ID number $id has been successfully deleted"; 
mysqli_close($dbh); //close the database connection 
?>

PHP データ アクセス オブジェクト PDO

PDO は、MySQL、PostGres、MS SQL Server などのさまざまなデータベース エンジンを操作できるようにするクラスです。

以下のコードは、PDO オブジェクトを使用したデータベース アクセス方法を示しています。

注: 以下のコードは、SQL 言語、配列、例外処理、foreach ループの知識を前提としています。

<?php 
	try {    
	$pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody');     
    
	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);     
	$pdo->exec('SET NAMES "utf8"');     
    
	$sql_stmt = "SELECT * FROM `my_contacts`";     
	$result = $pdo->query($sql_stmt);     
	$result->setFetchMode(PDO::FETCH_ASSOC);     
	$data = array();     
	foreach ($result as $row) {         
	$data[] = $row;     
  }     
print_r($data); 
} 
catch (PDOException $e) {     
	echo $e->getMessage(); 
} 
?>

ここに、

  • 「try{…catch…}」は例外処理ブロックです
  • “$pdo = new PDO(”mysql…” は PDO オブジェクトのインスタンスを作成し、データベース ドライバー、サーバー名とデータベース名、ユーザー ID とパスワードを渡します。
  • 「$pdo->setAtt…」は、PDO エラー モードと例外モードの属性を設定します。
  • 「$pdo->exec('SET NA…」はエンコード形式を設定します

ODBC ODBC は、Open Database Connectivity の頭字語です。 それには次のようなものがありますwing 基本的な構文。

<?php $conn = odbc_connect($dsn, $user_name, $password); ?>

ここに、

  • 「odbc_connect」はPHPの組み込み関数です
  • 「$dsn」はODBCデータソース名です。
  • 「$user_name」はオプションで、ODBC ユーザー名に使用されます。
  • 「$password」はオプションです。ODBC パスワードに使用されます。

使用されている例は、あなたを想定しています。

  • Windows OSを使用している
  • Northwind への ODBC リンクが作成されました。 Microsoft Northwind という名前のデータベースにアクセスします

以下はODBCデータアクセスの実装コードです。

<?php 
	$dbh = odbc_connect('northwind', '', ''); 
	if (!$dbh) {     
	exit("Connection Failed: " . $dbh); 
} 
	$sql_stmt = "SELECT * FROM customers"; 
	$result = odbc_exec($dbh, $sql_stmt); 
	if (!$result) {     
	exit("Error access records"); 
} 
	while (odbc_fetch_row($result)) {     
	$company_name = odbc_result($result, "CompanyName");    
	$contact_name = odbc_result($result, "ContactName");     
	echo "<b>Company Name (Contact Person):</b> $company_name ($contact_name) <br>";
} 
odbc_close($dbh); 
?>

まとめ

  • MySQL ほとんどの Web ホスティング サーバーで利用できるオープン ソースのリレーショナル データベース管理です
  • PHP には、MySQL の操作を簡素化する豊富な組み込み関数のコレクションが備わっています。
  • PDO は PHP Data Object の頭字語です。 同じオブジェクトを使用して異なるデータベース エンジンに接続するために使用されます。
  • PHP は odbc_connect 関数を使用して、ODBC 経由でデータベースを操作します。