web-dev-qa-db-ja.com

MySQLの代わりにMySQLiを使用する必要があるのはいつですか?

MySQLの代わりにMySQLiを使用することの長所と短所を誰かが私に明確にすることができますか? MySQLiを使用すべきでない状況はありますか? MySQLiを使用するには、サーバーを別の方法で構成する必要がありますか?たとえば、MySQLiをサポートできるようにApacheまたはPHPをアップグレードする必要がありますか?

15

MySQL拡張機能の代わりにMySQLi拡張機能を使用する必要がある理由はたくさんあります。

  1. MySQLiは、プリペアドステートメントを提供します。これは、MySQLにデータを送信し、SQLインジェクションからユーザーを保護するためのより安全な方法です。 これだけで、MySQLではなくMySQLiを常に選択できます
  2. MySQLiは、MySQLのほとんどの機能を有効にします。
  3. MySQLiはオブジェクト指向です。
  4. MySQLiは、プリペアドステートメント、トランザクション、および複数のステートメントをサポートしています。
  5. 古いMySQL拡張機能は PHP 5.5. 現在非推奨です

そして、他にもメリットがあります。しかし、主に、セキュリティと安定性に焦点を当てる必要があります-そしてMySQLiはまさにそれを提供します。

34
Repox

PHPチームは、これ以上mysql拡張機能をサポートすることを拒否します。この理由だけで十分です。

他のすべての理由はあまり意味がありません:

  • MySQLiはプリペアドステートメントを提供します-手動で処理されたplaeholdersで古いmysqlを使用し、さらに安全にこれだけで、MySQLが無用な非推奨になるのを防ぐことができます。
  • MySQLiは、ほとんどのPHPユーザーが聞いたことのない)ほとんどのMySQL機能を有効にします。
  • MySQLiはオブジェクト指向です-まっすぐな手のペアは、数時間のうちに古いmysqlオブジェクト指向にすることができます。
  • * MySQLiはをサポートします

したがって、利点はまったくありません。
非推奨ではないが使用可能な拡張機能を使いたい場合は、 [〜#〜] pdo [〜#〜] を選択してください。

8

mysql> 4.1.3を使用している場合。 Mysqliは、phpのmysql用の新しいインターフェースです。 http://www.php.net/manual/en/mysqli.overview.php からの引用

PHPのMySQL拡張機能とは何ですか?

これは、MySQLデータベースと対話するPHPアプリケーションを開発できるように設計された元の拡張機能です。mysql拡張機能は手続き型インターフェイスを提供し、4.1.3より古いバージョンのMySQLでのみ使用することを目的としています。この拡張機能は、MySQL 4.1.3以降のバージョンで使用できますが、最新のMySQLサーバー機能のすべてが使用できるわけではありません。

Note:

If you are using MySQL versions 4.1.3 or later it is strongly recommended that you 
use the mysqli extension instead.
4
J0HN

可能であれば、常に。

MySQLiがPHPインストールでサポートされていない可能性があります。ただし、ほとんどのホスティングプロバイダーはMySQLiをサポートしています。

2
Sjoerd

古いバージョンのMySQLデータベース(4.1.3より前)を使用している場合、またはMySQLiにまだ含まれていない機能が必要な場合(移動されなかった2つの機能のうちの1つがあると思います)を除いて、MySQLiを使い続けるできる。

0
Altrozero