ホームページ >バックエンド開発 >PHPの問題 >phpのmysqlとmysqliの違いは何ですか

phpのmysqlとmysqliの違いは何ですか

青灯夜游
青灯夜游オリジナル
2021-06-04 18:26:473199ブラウズ

違い: mysqli は永続的な接続関数ですが、mysql は非永続的な接続関数です。 MySQL は接続されるたびに接続プロセスを開きます。mysqli は常に同じ接続プロセスを使用するため、サーバー側の負荷を大幅に軽減できます。

phpのmysqlとmysqliの違いは何ですか

#このチュートリアルの動作環境: Windows7 システム、PHP7.1&&mysql8 バージョン、DELL G3 コンピューター

1。 mysql と mysqli の関連概念:

1. Mysql と mysqli はどちらも PHP の関数セットであり、mysql データベースとはほとんど関係がありません。

2. php5 バージョンより前は、php の mysql 関数は通常、mysql データベースを駆動するために使用されていました。たとえば、mysql_query() 関数はプロセス指向です。ある意味、これは mysql システム関数の拡張バージョンであり、より安定性、効率性、安全性が向上しています。mysql_query() に対応するのは、オブジェクト指向であり、オブジェクトを使用して操作および駆動します。 mysql データベース

2. mysql と mysqli の違い:

mysqli は永続接続関数ですが、mysql は非永続接続関数です。接続機能。

mysql 接続: 2 回目に使用されるたびに、新しいプロセスが再度開かれます。

mysqli 接続: 常に同じプロセスを使用します。

利点: これにより、サーバー側の負担が大幅に軽減されます。

Mysqli は、トランザクションなどのいくつかの高度な操作をカプセル化し、DB 操作プロセスで使用可能な多くのメソッドもカプセル化します。

3. mysql と mysqli の使用法:

1: mysql (プロセス モード):

$conn = mysql_connect('localhost', 'user', 'password'); //连接mysql数据库  mysql_select_db('data_base'); 
 //选择数据库  
 $result = mysql_query('select * from data_base');//第二个可选参数,指定打开的连接  
 $row = mysql_fetch_row( $result ) ) //只取一行数据  
 echo $row[0]; //输出第一个字段的值  

PS: mysqli は手続き型で動作します。一部の関数では、mysqli_query (リソース識別子、SQL ステートメント) などのリソースを指定する必要があり、リソース識別子のパラメーターが前に配置されますが、mysql_query (SQL ステートメント、'リソース識別子) ' ) はオプションで、デフォルト値は最後に開かれた接続またはリソースです。

2. mysqli (オブジェクト モード):

$conn = new mysqli('localhost', 'user', 'password','data_base');  //要使用new操作符,最后一个参数是直接指定数据库  //假如构造时候不指定,那下一句需要$conn -> select_db('data_base')实现  $result = 
 $conn -> query( 'select * from data_base' );  
 $row = result -> fetch_row(); //取一行数据  
 echo row[0]; //输出第一个字段的值

Use

new mysqli('localhost', usenamer', 'password', 'databasename'); エラーが報告され、プロンプトは次のようになります:

Fatal error: Class 'mysqli' not found in ...

通常、mysqli クラスはデフォルトで有効になっていないため、mysqli は有効になりません。win では、php.ini を変更して削除する必要があります。 php_mysqli.dll の前の「;」 Linux では、Mysqli をそれにコンパイルする必要があります。

4. mysql_connect() および mysqli_connect()

1. mysqli を使用すると、データベース名をパラメータとして mysqli_connect( ) 関数は、mysqli のコンストラクターに渡すこともできます;

2. mysqli_query() または mysqli object query query() メソッドが呼び出される場合は、接続識別子が必要です。

推奨学習: 「

PHP ビデオ チュートリアル

以上がphpのmysqlとmysqliの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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