1

私が理解しているように、通常の mysqlmysql.*メソッド ライブラリは、ライブラリによって多少置き換えられていますmysqli.*。基本的に、私の理解では、新しいライブラリはメソッド名の末尾に「i」という文字をタグ付けした古いメソッドをすべて使用しています。3 つの質問:

  1. MySQL がこのライブラリを更新した理由と、どのような新機能が含まれているのですか?
  2. Notepad++ のユーザーは、選択した言語をドロップダウン メニューから選択できます。これにより、IDE と同じようにコードが強調表示されます。たとえば、メソッドは青く太字で表示されます。初めて MySQL コードを書いたとき、私は古いライブラリ メソッドを使用していましたが、その進歩に気づいていませんでした。新しいライブラリ メソッドに変換すると、青/太字の強調表示が消えて、通常のフォントに戻りました。メソッド名の「i」を削除すると、再び強調表示されました。Notepad++ が新しいメソッドを認識しないのはなぜですか?
  3. 新しいメソッドは必須ですか (つまり、古いメソッドは PHP で引き続き機能しますか)?
4

5 に答える 5

1

詳細がわからないので、1番には答えられません。

2:デフォルトで含まれていない理由はわかりませんが、手動で追加できます。
[設定]->[スタイル設定]に移動し、[言語]で[php]を選択します。スタイルの下でWORDを選択します。
「ユーザー定義キーワード」というボックスに、使用するすべてのmysqli_*関数を追加します。これからハイライトされます。

3:今のところ、それらは機能します。5.5で非推奨になりました。つまり、使用すると警告がスローされます。最終的には、完全に削除されます。それでも、mysqliに切り替えて、アップグレードしても何も壊れないようにします。

于 2013-03-19T18:54:02.310 に答える
0

データベースに関する PHP.net の FAQ から

10 年以上使用している MySQL 拡張機能 (ext/mysql) の使用が推奨されないのはなぜですか? 非推奨ですか?代わりに何を使用しますか? どうすれば移行できますか?

「 MySQL APIの選択」セクションで説明されているように、3 つの MySQL 拡張機能があります。古い API は使用すべきではありません。いずれ廃止され、最終的に PHP から削除される予定です。これは一般的な拡張機能であるため、処理に時間がかかりますが、すべての新しいコードをmysqliまたは PDO_MySQLで記述することを強くお勧めします。

現時点では移行スクリプトは利用できませんが、mysqli API には手続き型 API と OOP API の両方が含まれており、手続き型バージョンは ext/mysql に似ています。

拡張子を混在させることはできません。したがって、たとえば、 mysqli接続をPDO_MySQLorに渡すことは機能しext/mysqlません。


Notepad++ の機能に関する質問については、公式フォーラム/コミュニティで質問する必要があります。


3 番目の質問の回答は、上記の抜粋に隠されています。

古い APIは使用すべきではありません。いずれ廃止され最終的にPHP から削除されます。これは一般的な拡張機能であるため、処理に時間がかかりますが、すべての新しいコードをまたはのいずれかで記述することを強くお勧めします。mysqliPDO_MySQL

于 2013-03-19T18:51:30.787 に答える
0

基本的に、私の理解では、新しいライブラリはメソッド名の末尾に「i」という文字をタグ付けした古いメソッドをすべて使用しています。

必ずしも。mysqli関数は、手続き型 (古いmysqlものと同様) またはオブジェクト指向スタイルの 2 つの形式になりました。(例$result->fetch_array())。

php.netより

mysqli 拡張機能は、デュアル インターフェイスを備えています。手続き型およびオブジェクト指向プログラミング パラダイムをサポートします。

新しいmysqli関数の中には、古い関数とは異なる引数を受け入れるものもあります。最も一般的には、ほとんどの関数が引数としてmysqliリンク (mysqli接続) を必要とするようになりました。

彼らがそれを変更した理由については、明らかにいくつかの理由があるに違いありません。上位のものはセキュリティと安定性であり、新しい OO スタイルの導入が 1 つの理由に違いありません。

利点については、これをご覧ください: MySQLi 拡張機能の利点

于 2013-03-19T18:51:43.610 に答える
0

1) php.netの概要によると

  • オブジェクト指向インターフェース
  • プリペアド ステートメントのサポート
  • 複数のステートメントのサポート
  • トランザクションのサポート
  • 強化されたデバッグ機能
  • 組み込みサーバーのサポート

2) 私は Notepad++ を使ったことがなく、Sublime Text 2 を使っています。

3)MySqlの概要には次のように書かれています:

この拡張機能は PHP 5.5.0 で非推奨になりました。将来的に削除されるため、新しいコードを書くことはお勧めしません。

PHP が MySql と対話する方法を最新の状態に保つことは間違いなく良いことです。


編集: MySqli クラスを使用する場合、クエリの最後に接続を含める必要がないため、MySqli の作成は MySql よりもスムーズです。

$query = $mysqli->query("SELECT * FROM table");

それ以外の

$query = mysql_query("SELECT * FROM table",$link);
于 2013-03-19T18:55:59.023 に答える