• ベストアンサー

PHP、MySQLの接続

プログラミングを勉強しているものです。 Mac でMAMPをインストールし、phpとmysqlの開発環境を整えました。 PHPを書いていてMySQLに接続する際、いろいろな書き方があると思います。 ネットで調べるとそれぞれ違ったことを書いて接続していたりして、どのコードを書けばいいのかわかりません。 アドバイスお願いします。

  • PHP
  • 回答数3
  • ありがとう数0

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

>いろいろな書き方があると思います ありませんよ。何処で仕入れたネタですか? 接続はmysql_connectかdbx_connectしか ないです。 MySQLなら前者の方がパラメータが少なく、 簡単です。

その他の回答 (2)

回答No.3

PEARのDBもしくはMDB2とPECLのPDO 後はネイティブ関数。(PEAR::DBはもう開発が中止されていてMDB2を利用することがすすめられている) 厳密にはPEARのDBやMDB2はそのネイティブ関数のラッパーした複数のDBに対応したライブラリ。 PDOも正確にはラッパーだけどCで作られている分速度的に優位。 プログラミングを勉強するならMySQLは本来やめておいた方がいい。 (MySQLとの接続ライブラリがLGPLではなくてGPLのためGPL汚染が発生する。) PostgreSQLやSQLiteを使った方が利用価値がある。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

ネイティブにmysql関数を使う方法(mysqlとmysqli)と、PDOくらいを覚えておけばいいと思います。 #PEARなどはあえて覚えることもないでしょう http://www.php.net/manual/ja/book.mysql.php http://www.php.net/manual/ja/book.mysqli.php http://www.php.net/manual/ja/book.pdo.php とりあえず最初はmysql関数からでもいいんじゃないでしょうか(もちろんいきなりPDOでもかまいませんが・・・)。

関連するQ&A

  • MySQL+PHP 接続エラーについて

    はじめて質問させて頂きます。 MySQL、PHPともに初心者です。 MAMPを使用しています。 ローカルではほぼ問題無く動作していたphpファイルをウェブ上にアップロードしたところ、以下のようなエラーが出てしまいました。 Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in~ ネットやこちらの過去ログで調べたところMAMP使用下ではよくあるエラーらしく解決法も載っていたのですが、どれを試してもなぜかエラーが消えてくれません。 ソケットもMySQLサーバー側とクライアント側で同じもの(/Applications/MAMP/tmp/mysql/mysql.sock)を参照していると思うのですが・・・ php.iniの中でも、 mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock と指定されてあります。 何か他に原因があるのでしょうか。 ド素人のため質問がすでにおかしいかもしれませんが、お知恵をお貸しください。 よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • php開発をする上でphpのバージョンの制限。

    php開発をする上でphpのバージョンの制限。 使用環境 mac os x 10.6.4 MAMP使用 エディタ:adobe dreamweaver CS5 phpでweb開発をしようと勉強しているのですが、 現在使用しているレンタルサーバーの方に電話したところ phpのバージョンが4.4.7の対応というふうに聞きました。 しかし、今現在勉強のために落としたものはMAMPというphpとapacheとmysqlのセットになっているもので、 そこのphpがバージョン 5.2.13か5.3.2のどちらかを選ぶようになっていて5.3.2にして勉強していました。 これで作ってたものローカル上ではいいものの サーバーに上げた時に使えない箇所が出てくるという事でしょうか? 何を気をつけなければいけないのでしょうか? また一応、4.4.7のPHPを落としたのですがこれをどうしろというのですか? 初心者丸出しで申し訳ないのですが、教えて下さい。

    • ベストアンサー
    • PHP
  • phpからMySQLに接続について

    phpからMySQLに接続について 自宅サーバーにMySQLをインストールしたのですが、 phpからMySQLに接続がうまくできず、困っています。 [test.php] <?php mysqli_connect("localhost","root","qwertyui") or die("Error MySQL First Test"); echo "Success MySQL First Test"; ?> [エラーログ] PHP Fatal error: Call to undefined function: mysqli_connect() in ~~~test.php on line 2 コマンドラインでは正常に動作しているのでインストールは問題ないと思います。 PHPの設定だと思うのですが、考えられる原因を教えていただければ幸いです。 環境 VineLinux 4.2 PHP 4.4.8 MySQL 5.0.27 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • cronを使ってPHPからMysqlが実行できない

    皆様いつもお世話になります。 現在MAMP環境(PHP+Mysql)でWEBシステム開発の勉強をしています。 一部機能でcronを利用して定時実行したい処理があるのですが、 その処理内にあるDBからデータを取得するプログラムが動かず困っています。 【症状など】 ・mysql_connect()の時点で 「No such file or directory」 というエラーが返ってきます。 ・上記エラーに対して、mysql.sockの場所の指定をきちんとしてやると解決することがわかり以下のコマンドをターミナルから打ち込みましたが ln -s /Applications/MAMP/tmp/mysql/mysql.sock mysql.sock 特にエラー内容などにも変化はなく状況は変わりません。 ・ちなみにcronから実行せず、ブラウザから直接リクエスト実行するときちんと動作します。 以上です。 全く解決する糸口が見つからず本当に困っています。 お詳しいかたどなたかご教授のほどよろしくお願いいたします! 開発環境: MacOSX 10.8 PHP 5.2 Mysql 5.5.25 google Chrome 29.0.1547.62

    • ベストアンサー
    • PHP
  • JAVAでMySQLに接続したらPHPとMySQLの接続ができなくなりました。

    JAVAの必要なフォルダにMySQLコネクタを入れ、JAVAからMySQLの接続できるか確認しました。Ecllipsでも同様のことを行いました。 その後、Windowsを一度シャットダウンし、 Windowsの起動時に「php_mysql.dllの指定されたモジュールが見つかりません」とエラーが表示されPHPとMySQLが接続できなくなりました。 php.info()を確認してみるとMySQLが表示されなくなりました。 そこで、PHPを再インストールしました。php.iniの設定をしPHPが動作できるかは確認しました。 その後、php.iniのextension=php_mysql.dll部分の「;」を外しました。 以前まではこれでMySQLへの接続が可能でしたが、 php.info()でMySQLが表示されず接続できなくなりました。 自分なりに調べたのですがこれ以上のことはわかりませんでしたので宜しくお願いします。

    • ベストアンサー
    • MySQL
  • phpからmysqlに接続できません。

    Apache/1.3.26 Debian3.0 GNU/Linux PHP/4.1.2 mysql/3.23.49-log の環境です。 $MyLink = mysql_connect(..略..); の箇所でFatal error: Call to undefined function: mysql_connect() in /var/www/bbs/bbs.php on line 23 のエラーがでます。 このPHPファイルは本のソース(CD)ですので間違いは 無いと思います。 ただし、本はmysql/3.23,PHP/4.1.1を使ってます。 何が良くないのでしょうか? 検索で PHP-4.2.x当たりで、ライセンスの関係からディフォルトの インストールオプションでは、mysqlのサポート関数がインストールされないので、 --with-mysql[=DIR] オプションが必要なはずです。 とありましたが、インストールは apt-get -install php4 で行いました。

  • PHP+MySQLで家計簿を作りたい

    初めまして。 PHP+MySQLで家計簿を作りたいと考えております。 なぜ家計簿を作ろうと考えたかというと、 プログラムの勉強をするには家計簿を作るのがいいと聞いたからです。 ちょうど個人的にも家計簿つけたいと考えてたんですけどね。。。 そこでネットで検索すれば簡単に出てくると思ってたのですが、 なかなか作り方の手順が載っているサイトに巡り合えませんでした。 (「PHP 家計簿」や「MySQL 家計簿 ソースコード」など検索の方法は色々と試しましたがダメでした。) 現在会社でプログラムの勉強をしており、 すでに環境構築は済んでおります。 もしオススメのサイトがあれば教えていただけませんでしょうか? よろしくお願い致します。

    • 締切済み
    • PHP
  • PHP+MySQL 接続できません

    php5・MySQL5.0 の 環境でMySQLに接続したいのですが、 うまくいかずに困っています。 参考書の通りに設定したのですが、どこか間違っていたのでしょうか。 コマンドプロンプトから、CREATE TABLE などの操作は問題なくできます。 sample.php ------------------------------------------- <?php $con = mysql_connect("localhost", "username", "pass") or die("接続できません。"); print "接続に成功しました。"; mysql_close($con); ?> 表示された内容 ------------------------------------------- Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in D:\Apache2\htdocs\sample.php on line 8 接続できません。 どうぞよろしくおねがいします。

    • ベストアンサー
    • MySQL
  • phpからmysqlへ接続できなくて困っております

    phpからmysqlへ接続したいのですが、データベースへ接続できません。 まず、使用環境は以下の通りです。 ------------------------------ OS:RedHatLinuxES4 MYSQL:mysql-4.1.7-4.RHEL4.1 PHP:php-4.3.9-3.1 MysqlとPHPはRedHatサイトのパッケージを使用してrpmでインストール しております。 MySQLのデータディレクトリをデフォルトの/var/lib/mysqlから /home/mysqlへ変更してます。 それに伴い、/etc/my.cnfのソケットとデータディレクトリの箇所 を変更しております。 <デフォルト設定> socket=/var/lib/mysql/mysql.sock datadir = /var/lib/mysql <変更後> socket=/home/mysql/mysql.sock datadir = /home/mysql ------------------------------ 色々調べていて原因は分かりました。 mysqlで指定しているソケットの場所と、PHPで指定している ソケットの場所が違うため、接続できないようです。 phpinfoにて情報を取得したところ、mysqlの箇所でソケットを指定 がデフォルト値の/var/lib/mysql/mysql.sockとなっておりました。 そこで、php.iniファイルのMYSQLの箇所を以下のように修正しました。 <デフォルト設定> mysql.default_socket = <変更後> mysql.default_socket = /home/mysql/mysql.sock 上記変更後、apacheを再起動し、再度phpinfoにて情報を取得した ところ、以下のようになりました。 MySQL Support項目、 MYSQL_SOCKET → /var/lib/mysql/mysql.sock #変更されず、反映されていないように見受けられるます Directive項目、 mysql.default_socket → /home/mysql/mysql.sock #php.ini修正前は確か、no valueであったと思います。 #従いまして、php.iniの内容が反映されている? --- その後、mysqlへ接続する、mysql_connect関数を利用して 接続テストを行った結果、エラーとなり接続できませんでした。 <エラーメッセージ> 接続できませんでした: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) --- おそらく、上記のphpinfo情報取得した時の、MYSQL_SOCKETが反映 されていないからだと思っておりますが、php.iniファイルの mysql.default_socketを修正すれば反映されると思ったにも関わらず 反映されないので、次にどこを修正すれば良いのか分かりません。 ご教授頂けませんでしょうか。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPからMySQLに接続することができません。

    PHPからMySQLに接続することができません。 解決方法をご存じの方は教えていただけないでしょうか。 PHPから、mysql_connect を行った際、以下のエラーが発生してしまいます。 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13) 環境 OS:CentOS 5.3 DB:Mysql 5.0.67(ソースからインストール) Web:Apache PHPのソースの一部を以下に記します。   $db_host = 'localhost';//DB_NAME;   $db_user = 'user';//DB_USER;   $db_pass = 'pass';//DB_PASS;   $db = mysql_connect($db_host,$db_user,$db_pass); 以下の方法も試したのですが、エラーメッセージは変わりませんでした。   $mysql_connect("localhost:/tmp/mysql.sock","mysql","passwd") 端末のコマンドからMySQLへの接続は成功します。 ホスト名、ユーザー名、パスワードも上記と同一のものです。   $ /usr/local/mysql/bin/mysql -h localhost -u user -p   Enter password:pass 以上です。宜しくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう