MySQLとMySQLiの違いについて

このQ&Aのポイント
  • MySQLとMySQLiの違いについて、PHPのバージョンやMySQLのバージョンによって使い分ける必要があります。
  • MySQLとMySQLiは、データベースとの接続や操作を行うためのAPIであり、それぞれに特徴があります。
  • MySQLは古いバージョンのPHPやMySQLとの互換性が高く、簡単に移行することができます。一方、MySQLiは新しいバージョンのPHPやMySQLとの互換性があり、セキュリティやパフォーマンスの面で優れています。
回答を見る
  • ベストアンサー

mysql mysqli 違いなど

php & mysql Webアプリ開発初心者向け関連の本を読みながら学習している者です・・・。 本によってはSQL文が、mysql~と書いてあるものもあれば、mysqli~と書いてあるものもあります。 わからなくなってしまいました・・・。 PHPのバージョン ⇒ 5.2.17(phpinfo();にて確認) Mysqlのバージョン ⇒ 5.1.56(サーバー側のphpMyadminからselect version()にて確認) サーバーapacheのバージョン ⇒ 2(外人サポートに聞いたら、『2』とだけ言われました汗) 使用PC ⇒ Windows7 質問 1、私の場合、主にmysql mysqli、どちらを使っていけばいいでしょうか? 2、mysql mysqliの機能的な違いに関してよくわかりません。。phpやmysqlなどのバージョンによって片方のみを使用するのか、時と場合によって使い分けるのか、別にどちらを使用してもいいのか、など・・。 すいません、検索したんですけど、よくわかりませんでした・・・涙

  • MySQL
  • 回答数1
  • ありがとう数10

質問者が選んだベストアンサー

  • ベストアンサー
  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.1

>2、mysql mysqliの機能的な違いに関してよくわかりません http://www23.atwiki.jp/sevenlives/pages/1335.html より引用 ------ MySQLi 意味: MySQLiとは機能が向上したMySQLを扱うためのPHP5の拡張機能のこと。 PHP5とMySQL4.1以降のバージョンに対応しています。 新しい関数が追加され、従来のmysql関数群にiを追加しただけの関数など変更しやすい。オブジェクト指向の記述に対応。指定するMySQLの設定ファイル(my.cnf)の読み込みが可能になった。 など拡張された。 ------ バージョンの制約はどちらもでも問題ないようですね。 MySQLiはMySQLの機能拡張版ということなのでMySQLでできることはMySQLiでできる。 逆はできないことがある。 (書き方は必ずしも同じではないようですが、SQLを実行するだけならほとんどかわらないようです。) >1、私の場合、主にmysql mysqli、どちらを使っていけばいいでしょうか? さて、将来性はというと私はどっちかが将来なくなるとかを判断する材料を持っていませんので、 判断はできないのですが。 基本を勉強するなら、MySQLから勉強したほうがいいと思います。 MySQLiも勉強しておく必要はあると思いますが。 (後者のみで簡単に実現できることがあるはずなのでそちらの知識も知っておかないと。) 一方、あるWebサイトを構築する要件のみということに限定するなら、MySQLiで統一したらどうですか? といいますけど。 ## PHPでは、他にもPDoやらPEAR::DBやらあるみたいですけど、 ## まあ、どれかひとつふたつやっておけば違いの理解はたやすいかなと思います。

関連するQ&A

  • hpinfoにmysqlやmysqliが表示されない

     現在、Windows2003 サーバ(IIS6.0)、PHP5.4.3、mysqlは5.0.45に環境を構築しています。phpは実行でき、コマンドからはMySQLに接続できますがphpプログラムから接続できません。  そこで調べていたのですが、phpinfoにmysqlやmysqliが表示されていません。phpとMySQLの接続がうまくいっている環境ではphpinfoにmysqlやmysqliが表示されているのでこれが原因だと思われます。 他の人の投稿から下記のことは確認いたしましたが、どうしても上手くいきません。よろしくお願いいたします。 ・php.iniはC:\Windowsに存在します。またphp.iniファイルは1つしかありません。 ・php.iniファイルの下記の項目は変更しました。  extension_dir = "C:\php\ext"  extension=php_mysql.dll  extension=php_mysqli.dll

    • 締切済み
    • PHP
  • MySQL Client API versionについて

    質問です。 WindowsXP PHP5 MySQL5 Apache2 上記の環境PHP+MySQL+ApacheでWordpressなどのシステムを動かそうとしているのですが 一つ疑問に思っている点があります。 phpinfo.phpやphpMyAdminにあるMySQL Client API versionが version4.1.7と出ています。 MySQLのバージョンは5なのですが、どうしてクライアントAPIバージョンは4になるのでしょうか またこれは一体どのようなものなのでしょうか

  • mysqliについて

    PHP初心者です PHP 5.2.5 MySQL 5.1.22 レンタルサーバーのphpのバージョンが php5.2.5ではpdoがバグで使えないらしいのでmysqliを使おうとしています。PHP 5.2.5でもmysqliはバグありますか? mysqliでMYSQLに接続するにはどうすればいいのでしょうか? いままではこんな感じでしたがmysqliにするとどんなコードになるのでしょうか? $link=mysql_connect('localhost', 'user', 'pass')or die(mysql_error()); mysql_select_db(user'); mysql_query('SET NAMES UTF8'); $start=1; $hyouji=10; $recordSet = mysql_query(sprintf('SELECT * FROM hoge2 ORDER BY id LIMIT %d, %d' , ',$start,$hyouji)); <?php while ($table = mysql_fetch_assoc($recordSet)) { ?> <tr> <td><?php print($table['id']); ?></td> <td><?php print($table['name']); ?></td> </tr> <?php } ?>

    • ベストアンサー
    • PHP
  • mysqliについて

    <?php //DB設定 $DB_HOST = 'mysql**.db.sakura.ne.jp'; $DB_USER = 'sakura'; $DB_PASS = '0000'; $DB_NAME = 'members'; $link = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME); if (mysqli_connect_errno()) { die('データベースエラー'); } ・ ・ ・ ?> ただこの記述ですとローカルで作成した場合は表示されるのですが、サーバーにあげると表示されなくなってしまいます。 エラー表示が 「Call to undefined function mysqli_connect() in /***/***/***/login.php on line **」 とでます。 **はちょうど $link = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME); が表示されているところになります。 mysqliをmysqlに変更しても表示されません。 初心者のためまったくわけがわかりません。 サーバーはsakuraを使用しています。 MySQL のバージョンは5.1 PHP の バージョンは 5.2.12 お分かりの方がいらっしゃいましたらご教授いただければと思います。

    • 締切済み
    • PHP
  • PHPでのMySQL接続エラーについて

    PHPを使用してMySQLサーバに接続しようと思うのですが、どうしても "Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in C:\Server\Apache2.2\htdocs\htdocs\connect.php on line 2" と表示されて接続できません。いろいろ試してみたので、情報を列挙いたします。 動作環境 OS:WindowsXP Pro Apache2.2.8 PHP5.2.6 MySQL5.0 1.コマンドプロンプトからはMySQLに正常に入ることが可能です。 2.上記のエラーが出るPHPプログラムは以下の通りです。 "<?php %conn = mysql_connect("localhost", "root", "password"); ?> 3.phpMyAdminを使って接続しようとしても以下のエラーが出ます。 #2003 - サーバが応答しません" 4.セキュリティソフトを終了させて接続しても同様の症状でした。 5.phpinfo()関数は正常に動作し、mysqlやmysqliの情報も表示されます。 以上の内容ですが、よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • 超初心者です。PHPからMySQLに接続できません

    コマンドプロンプトからはログインできるのに、PHPMyAdminからはMySQLにログインできません 超初心者です WordPressを学習しようとサイトを参考に 以下の環境で、PHPとMySQLをインストール&設定しました OS :WindowsXP SP2 PHP :Ver 5.3.8 MySQL:Ver 5.5 Apache:Ver 2.2 php.ini にて extension=php_mysql.dll extension=php_mysqli.dll を、追加など コマンド・プロンプトからの >mysql -u root -pパスワード は、正常にログインできましたが PHPMyAdminをインストールし ブラウザからの localhost/phpmyadmin/index.php からは、以下のようなエラーとなり、ログインできません #2002 MySQL サーバにログインできません ちなみに、ブラウザから PHPInfo.php は正常に表示されております 恐れ入りますが、どうか皆さまの知恵と御力添えを 宜しくお願い致します

  • MySQLとPHPがつながりません。

    MySQL5.1 Apache2.0 PHP5.2.4をインストールしたのですが、MySQLとPHPがつながりません。 phpinfoを見ても、libxmlとodbcの間に本来あるべきMySQLがありません。 C:\WINDOWS\php.iniにある、 extension=php_mysql.dll extension=php_mysqli.dll のセミコロンは外しています。 php5ts.dllはC:\WINDOWSに、libmysql.dllはC:\System32とC:\Apache2\binにコピー済みです。 php_mysql.dllやphp_mysqli.dllもコピー済みです。 それでも反映されず、やけくそで各フォルダに全種類dllをコピーしたりもしましたがやはり反映されません。 そして、この状態でWEB上からPHPにアクセスすると、 Fatal error: Call to undefined function mysql_pconnect() in C:\Apache2\htdocs\include\setup.php on line 7 というメッセージのサイトが出てきます。 恐らくphpinfoにMySQLが反映されれば解決すると思うのですが、どのようにすれば良いのでしょうか。 どなたか宜しくお願いします。

    • ベストアンサー
    • MySQL
  • Mysqliに関して

    すいません、分かる方いましたら宜しくお願いします。 php ver 5.16 Mysql ver 5.0.95 今回Mysql⇒Mysqliに接続方法を変える事になりまして、 今勉強しながら修正しています。 1個問題があり、不明点が御座います。 ファイルをDBに取り込むLOAD DATA LOCAL INFILEコマンドを使用していたのですが、 Mysqliを使用したら下記エラーになり使用できなくなりました。 This command is not supported in the prepared statement protocol yet prepared コマンドが使用できないと見えるのですが、 MysqliはOAD DATA LOCAL INFILEは使用できないものでしょうか?? プログラムは簡易ですがこんな感じです。 $mysqli = new mysqli($sv, $user, $pass, $dbname); //オートコミットを停止 $mysqli ->autocommit(FALSE); $stmt = $mysqli->prepare("SET NAMES utf8"); $stmt->execute(); $sql="LOAD DATA LOCAL INFILE '"・・・ //ここでエラー if (($stmt = $mysqli->prepare($sql)) === false) {   $result = false; die($mysqli->connect_error); $mysqli->close(); } $stmt->execute() or exit("bind errorn"); アドバイス頂けると助かります。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • windows2003serverにapache,PHP,MySqlをインストールして動かしたい

    はじめまして・・・サーバーが動きません OS:windows2003R2SP2で Apache2.0.59 PHP4.4.6 Mysql4.0.26 をインストールして動かしたいのですが…動きません Mysql→Apache→PHPの順でインストール Mysql、apache、は普通にインストールでき動作確認が出来ました。 PHPをインストールして…Apacheからphpinfo()を流すと…そのまんまブラウザに出力[<?phpinfo();?>]されます。 コマンドプロンプト→PHP d:\htdocs\phpinfo.phpを流すときちんとコマンドプロンプト上では出力されます。 何が悪いのでしょうか? 同じ開発端末windows200proでは同じ構成で普通に動作しています。 IISをインストールしてFTPサーバーを動かしているからでしょうか? それともwindows2003server無理なのでしょうか? よろしくお願いします。

  • PHPとMySQLが接続できません。(Linux環境)

    【状態】 ブラウザからサーバのPHPにアクセスした際、MySQLに接続してSelect文を流すスクリプト(仮にselect.phpとします)を作成しました。 しかしブラウザからドキュメントルート直下の同スクリプトにアクセスすると、 Fatal error: Call to undefined function mysql_connect() in [スクリプトのフルパス] on line 14 とエラー表示されてしまいます。 phpinfo()を確認したところ、MySQLのセクションがない状態。 他のWebページを参考にphp-mysqlモジュールをyumでインストールし、php.iniに   extension=mysql.so   extension=mysqli.so と   extension_dir = "/usr/lib/php/modules" の2行を追加しApacheを再起動しましたが、状態変わらずです。 ちなみにApacheとPHPはソースからインストールし、httpd.confもphp.iniも/usr/local/apache2/conf/以下に配置。 httpd.conf中に   PHPIniDir "/usr/local/apache2/conf" の表記もあり、MySQLに接続しないPHPは正常に処理されます。 また、mysql.so/mysqli.soも上記php.iniで指定した"/usr/lib/php/modules"に存在します。 何か原因として考えられる事はありますでしょうか。 心当たりのある方がいらっしゃいましたらアドバイスお願い致します。 【各バージョン ※インストールした順に表記】 OS:CentOS 5.2 (VMWare上で稼働) カーネル:2.6.18-92.el5 Apache:2.2.9 (ソースからコンパイル) PHP:5.2.6 (ソースからコンパイル) php-mysql:5.1.6 (yumでインストール) mysql:5.0.45 (yumでインストール) mysql-server:5.0.45 (yumでインストール) 以上、見にくくて申し訳ありませんが宜しくお願い致します。

    • ベストアンサー
    • PHP