この記事から始めて、MySQLi 拡張機能について学びます。 MySQL (オリジナル) 拡張機能は、私たちの多くが初めて PHP を学習し始めるときにデータベースに接続するための入門講師であると言えます。プロシージャル コードを使用してデータベースを操作する場合は、mysqli 拡張機能のみを使用できます。
PDO の学習は終了しました。この記事から、PDO 以外のコア MySQLi 拡張機能である別の MySQL 拡張機能について学び続けます。おそらく、その祖先である MySQL (オリジナル) 拡張機能は、私たちの多くが最初に PHP を学習し始めたときに、データベースに接続するための頼りになるガイドでした。しかし、時代の変化とともに、MySQL (オリジナル) 拡張機能は PHP7 では完全に放棄されました。プロシージャル コードを使用してデータベースを操作する場合は、mysqli 拡張機能のみを使用できます。もちろん、mysqli 拡張機能はオブジェクト指向の記述もサポートしています。
PHP7 は削除され、まったくサポートされていません
##その後、PDO
3 つの特性から判断すると、MySQL (オリジナル) 拡張機能は決して推奨されません。古いプロジェクトであっても、PHP 版の PDO または MySQLi をサポートしている限り、データベース接続の変換を検討する必要があります。 2 つの方法のうちの 1 つです。 PHP5 環境での MySQL (オリジナル) 拡張機能の使用方法をまだ学習している場合は、やめても構いません。
$mysqli = mysqli_connect("localhost", "root", "", "blog_test"); $res = mysqli_query($mysqli, "SELECT * FROM zyblog_test_user"); $row = mysqli_fetch_assoc($res); print_r($row);MySQL (オリジナル) 拡張コードを移植すると本当に便利だと思いますか?すべてのメソッド名を mysqli_xxx に変更するだけです。
$mysqli = new mysqli("localhost", "root", "", "blog_test"); $res = $mysqli->query("SELECT * FROM zyblog_test_user"); $row = $res->fetch_assoc(); print_r($row);
另外,这两种方式还可以混合使用,不过并不推荐。混合起来使用的话很容易让看代码的人晕头转向。所以,最好还是在一个项目中就坚持使用一种方式。
$mysqli = new mysqli("localhost", "root", "", "blog_test"); $res = mysqli_query($mysqli, "SELECT * FROM zyblog_test_user"); $row = $res->fetch_assoc(); print_r($row);
在这段代码中,我们实例化了一个 mysqli 对象,然后使用面向过程的 mysqli_query() 函数来执行语句,接着又使用面向对象的方式来获取结果集。是不是很乱?但是它是可以正常运行的。
从上面的内容中可以看出,PDO 的特点是支持多种不同类型的数据库,就像 Java 中的 JDBC 一样。而 MySQLi 虽然只支持 MySQL 数据库,但它却可以同时支持面向对象和面向过程两种写法。是我们针对老项目代码进行升级优化的好帮手。同时,它还是现在入门 PHP 学习相关数据库操作的首选。在接下来的文章中,我们将默认只使用 面向对象 式的写法来继续学习 MySQLi 扩展相关的知识。
测试代码:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/4.PHP中的MySQLi扩展学习(一)MySQLi介绍.php
推荐学习:php视频教程
以上が3 分で PHP の MySQLi を理解できますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。