• ベストアンサー

PHPでMySQLのDBに接続

PHP,MySQLが使えるレンタルサーバーを借りているのですが, PHPでMySQLに接続し、php_dbを選択をするようにしたいのですが、 この時DBファイルはどこに置けばいいのでしょうか? 現在はMySQLの管理コマンド(?)とは別にpublic_htmlの中に PHPフォルダを作り、そこにDBファイルを入れています。 PHPのスクリプトは <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>練習</title> <meta http-equiv="content-language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> </head><body> <?php $con = mysql_connect(); if (!$con) { echo ("Error:MySQLに接続できませんでした。<br />"); } else { echo ("接続ID=$con<br>\n"); } $selectdb = mysql_select_db("php_db" ,$con); if (!$selectdb) { echo ("Error:データベースを選択できませんでした"); } else { echo ("データベースphp_dbを選択しました。"); } ?> </body></html> としています。 MySQLには接続ができるのですが、php_dbには接続ができません。 php_dbのおき場所を変えるのか、ファイルの指定が間違っているのか その他、どの要に変更をしたらよいのでしょうか? お願いします。 環境はレンタルサーバーがLINUXでPHPのバージョンなどはわからないんです・・・!! 開発がOSがW2kでFTPで転送してます。

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

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

  • ベストアンサー
  • nataruy
  • ベストアンサー率52% (19/36)
回答No.3

amountainblastさんが勘違いなされていると思うのですが・・・ 基本的にデータベースのファイルは「データベースが管理するもので、ユーザ(プログラマー)が直接触る必要はありません」。 GuruGuru22さんがおっしゃられるとおり、まず先にmysql_create_dbでデータベースを作成します。これはデータベースソフトによってなされる事なので、それに使用されるファイルがどこにどのように作成されるかを気にする必要はありません(同じサーバー上に存在しない事もあります)。 その上で、その作成したデータベースをmysql_select_dbで選択するのです。 多分その本にはコマンドラインからのデータベースの作成の仕方が載っていたのだと思うのですが、それで生成されるファイルが他のサーバーのデータベースで使えるかどうかは分からないので、そのサーバーで作り直す必要があると思います。 なお、サーバーソフトとLinuxの種類やPHPのバージョン等は(もっとも有名な関数)"<?php phpinfo() ?>"で調べる事が出来ます。

参考URL:
http://allabout.co.jp/computer/database/closeup/CU20030227/index.htm
amountainblast
質問者

お礼

ご回答ありがとうございます。 何やら私が勘違いをしているみたいですね・・・!! すみません。 mysql_create_dbでデータベースを作るスクリプトを if (!mysql_create_db("sample_db" ,$con)) { echo ("Crete_DB Error:データベースを作成できませんでした。<br>\n"); } else { echo ("データベースを新しく作成しました。<br>\n"); } アップしたことろTRUEが返りました。 あまり原因がわかっていません。 どうやら権限を付けるんだろうと勝手に解釈しております。 のでもっと基本的な事から始めないといけないみたいなので、どうしようかと思っていたら後ろの方にコマンドラインからのmysqlの操作が書いてありましたので、とりあえず先に進んでみようと言うことで、先に進みたいと思います。どうもありがとうございました。

その他の回答 (2)

回答No.2

>PHPのmysql_create_db関数でデータベースを作って、 >そのアップ先は何処のフォルダでもいいのでしょうか? えーと、サーバーにupしたスクリプトで mysql_create_dbを実行して、うまくいけば サーバー上にデータベースが作成されますよね。 試してみて、サーバーのどこに作成されたか 確認してみてはどうかと思ったのです。 ただ、そのレンタルサーバーの説明書きか何かを 見ればそういったことは書いてあると思うのですがね。

回答No.1

ローカルでデータベースつくって それをサーバーにアップしているって ことですか。 MySQL のヴァージョンの違いとかは 気にしなくても大丈夫なのかな。 とりあえず、PHPのmysql_create_db関数で データベースつくってみたらどうでしょう。

参考URL:
http://search.net-newbie.com/php/function.mysql-create-db.html
amountainblast
質問者

お礼

ご回答ありがとうございます。 今は書籍を読んで勉強していて、 その本についていたデータベースをアップしています。 ただ、本が窓を使った環境で説明されているのと、データベースを何処にアップしたらいいのか書いていないので、よく、分からないんです。 PHPのmysql_create_db関数でデータベースを作って、そのアップ先は何処のフォルダでもいいのでしょうか?

関連するQ&A

  • PHPとMySQLを学習しているのですが・・・。

    ----------------- apache2.0.59 php5.24 MySQL5.0.45 ----------------- <?php $my_con = mysql_connect("localhost" , "hamu" , 'hamutamago'); if($my_con == false){ echo "MySQLに接続できました"; }else{ echo "MySQLに接続できました"; }; if(mysql_select_db("sample_sql")){ echo "データベース接続できました"; }else{ echo "データベース接続できませんでした"; } ?> PHPでMySQLと連動させる勉強をいましているのですが、PHPからMySQLへアクセスする事はできたのですが、自分で作成したデータベースへアクセすることができません。最初からMySQLに入っていたinformation_schemaというデータベース(?)にはアクセスできるみたいなのですが、自分で策瀬下データベースにはアクセスが出来ないようです。 なにかご存じのかたがいらっしゃいましたらよろしくお願いします。

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

    初心者です宜しくお願いします。 phpからデータベースを使いたいのですが(mysql)、mysql_query()関数のところで1366エラーが出ます。 半角英数ならエラーは出ません。 プログラムを貼り付けます。どなたかお願いします、説明をもっと書きたいのですが私もあまりわかってないのでどうもすみません。 今やっていることは全てローカルですwindowsを使ってます、文字コードもshift_jisです。phpもmysqlも一台のコンピュータでやっています。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>MySQLへデータを登録</title> </head> <body> DBとの連携テスト結果<br> <?php // DBに接続 if(!$con=mysql_connect("localhost","root","y3kwyuba")){ echo"connect_error"; exit; } // DBを選択 if(!mysql_select_db("test",$con)){ echo"select_db_error"; exit; } //MySQL4.1への対応 //mysql_query("SET NAMES SJIS"); この上の行のコメントをはずすとうまく動くのですが色々調べましたら、この書き方は推奨されないと書いてありました、他に対策はあるのでしょうか? $name = $_POST['nm']; $age = $_POST['age']; // フォームで送られてきたデータでINSERT文を作成 $sql = "insert into t_touroku(name,age) values('$name',$age)"; // SQLを実行 if(!$res=mysql_query($sql,$con)){ echo"query_error"; echo "エラー番号:".mysql_errno(), #エラー番号 "メッセージ:".mysql_error(); #エラーメッセージ exit; } // DBから切断 mysql_close($con); // メッセージ出力 echo"登録完了"; ?> </body> </html> 宜しくお願いします。

    • ベストアンサー
    • PHP
  • phpでmysqlで作成したdbを表示したい。

    現在phpのプログラムの学習を行っています。、 phpmyadminで作成したデータベースを読み込もうとしているのですが、うまくいきません。 参考書やサイトも参考にしたのですが、警告が出ています。 よくわからなくなってきましたので、教えていただきたいです。 ------------------------------------------------------------------------------- ・実行結果 Resource id #31Resource id #40 接続ID: 選択の成否: 結果ID: 行数: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\job\job.php on line 45 ------------------------------------------------------------------------------- ・ソース <?php /*$con = mysql_connect('localhost','root','root') or die("接続できません"); print "接続に成功しました。"; mysql_close($con);*/ $url = "localhost"; $user = "root"; $pass = "***"; $db = "***"; // MySQLへ接続する $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。"); // データベースを選択する $sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。"); // クエリを送信する $sql = "SELECT * FROM t01prefecture"; $result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql); //結果セットの行数を取得する $rows = mysql_num_rows($result); //結果保持用メモリを開放する mysql_free_result($result); echo "$link"; echo "$sdb"; echo "$result"; echo "$rows"; echo "<br>"; echo "接続ID:<?= $link ?><br />"; echo "選択の成否:<?= $sdb ?><br />"; echo "結果ID:<?= $result ?><br />"; echo "行数:<?= $rows ?><br />"; $recordSet = mysql_query('SELECT * FROM my_items'); while($data = mysql_fetch_assoc($recordSet)){ /*このあたりが45行目 */ echo $data['item_name']; /* ここの値を変える*/ echo '<br>'; } // MySQLへの接続を閉じる mysql_close($link) or die("MySQL切断に失敗しました。");

    • ベストアンサー
    • PHP
  • PHPとMYSQLでカウンターを作っています

    アクセス数を管理画面で表示しようとしています。 **全く変な事をしているかも知れません。。。 DBはこのようになっています、同じ会員のページを合算して表示したいので 0001の会員にはpagename 0001 0001a と言う具合につけて、 0002の会員にはpagename 0002 0002a とつけて行きます pagename varchar(20) access int(11) カウントは出来ているのですが、表示させることが出来ません。 多分、全く的外れなことをしていると思います <?php require_once("dbini.php"); $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); $selectdb = mysql_select_db($DBNAME, $con); $sql = "select access from count where like pagename = '0001%'"; $rst = mysql_query($sql, $con); $body = ""; while($col = mysql_result($rst)) { $body .= "総アクセス数". "<br>"; $body .= $col["0001"]+$col["0001s"]. "<br>"; $body .= "トップページアクセス数". "<br>"; $body .= $col["0001"]. "<br>"; $body .= "紹介ページアクセス数". "<br>"; $body .= $col["0001s"]. "<br>"; } mysql_free_result($rst); $con = mysql_close($con); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> <?= $body ?> </BODY> </HTML> 分かりにくい説明かと思いますが、 どなたか分かる方ヒントでも頂けると幸いです よろしくお願いいたします。

    • 締切済み
    • PHP
  • mysql_select_db()関数に関して・・・。MySQLでテーブルの作成ができません。

    こんにちは、さくらインターネットのレンタルサーバでMySQLとphpを連動させたサイトを作っているのですが、初歩的なことでつまずいてしまい困っています。 まず、フォームで入力させたデータをPOSTで受け取り、その受け取ったデータをテーブル名として、データベース上にテーブルをつくりたいのですが、エラー文が表示されるだけでできません。 データベース自体への接続はできているようなのですが、phpMyAdminで見ても全くできていません。SQL文をphpMyAdminで実行するときちんと正常にテーブルができますので、そもそもデータベースが使用できないとか、もしくはSQL文の間違いでもなさそうです。 $t1 = $_POST['test1']; $t2 = $_POST['test2']; echo"{$t1}を受け取りました<br>"; $link = mysql_connect('mysql**.db.sakura.ne.jp', 'ユーザー名', 'パスワード'); if (!$link) { die('接続失敗です。'.mysql_error()); } print('接続に成功しました。<br>'); //1.さくらインターネット内にあるデータベースの選択 $db_name = "自分のデータベース名"; $selectDB = mysql_select_db($db_name,$link) or die("接続できません。"); //2.データベース内にテーブルを作成。 echo"{$t1}がテーブル名になります。<br>"; //3.テーブル作成用SQL文 $str_sql = "CREATE TABLE {$t1}" . "(" . "{$t2} INT(7) NOT NULL," . ");"; //4.上のSQL文を実行してテーブルを作る。 mysql_query($str_sql,$selectDB); echo"データベース内にテーブル「{$t1}」を作成しました。<br>"; //データベースへの接続を切断 $close_flag = mysql_close($link); if ($close_flag){ print('切断しました。<br>'); } 実行結果:Warning: mysql_query(): supplied argument is not a valid MySQL-Link resourceとなってテーブルは作成されず。 自分でも調べて見たところ、mysql_connect()での接続はちゃんとできているようなのですが、その次のmysql_select_db()関数がうまく働いていないようです。 つまりデータベースの選択ができていないので当然エラーとなるようです。 もう何日も悩んでいます。わかる方がいましたらどうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • php + MySQLでデータ削除 更新

    一覧画面に更新、削除というボタンをつくり番号を受け取って削除したいのですが、削除ボタンを押しても画面は変わるのですが削除されません 助けてください 番号 int プライマリーキー 氏名 varchar 住所 varchar 一覧画面のソース <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","admin","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "<form action=koushin_input.php method=post>"; echo "<td><input type=submit value=更新></td>"; echo "</form>"; echo "<form action=sakujo.php method=post>"; echo "<td><input type=submit value=削除></td>"; echo "</form>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html> 削除ソース  sakujo.php <html> <body> <? // データベースに接続 if(!$con=mysql_connect("localhost","root","admin")){ echo"接続エラー"; exit; } // データベースを選択 if(!mysql_select_db("db_test",$con)){ echo"データベース選択エラー"; exit; } // DELETE文を実行 $sql = "delete from tbl_test where '番号'= 番号; if(!$res=mysql_query($sql)){ echo "SQL実行時エラー"; exit; } // データベースから切断 mysql_close($con); // 登録完了メッセージの表示 echo "削除完了"; ?> </body> </ht

    • 締切済み
    • PHP
  • phpとmysqlの検索システムを作成しているのですが

    半角英数字で検索すると、ちゃんと検索できるのですが、日本語や全角で検索しようとすると 接続ID=Resource id #2データベースを選択しました Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\php.php on line 54 検索結果 該当するデータはありませんでした 名前 メーカー Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\php.php on line 69 と出てしまいます。 phpのソース <html> <head> <title>検索結果</title> <meta http-equiv="Content-Type" content="text/html;charset=eucjp"> </head> <body> <?php $con=mysql_connect("","root",""); if(!$con){ echo ("MYSQL接続に失敗しました"); exit(); } else { echo ("接続ID=$con"); } mysql_query("SET NAMES sjis") or die("can not SET NAMES sjis"); $db=mysql_select_db("a05"); if(!$db) { echo ("データベースを選択できませんでした"); } else{ echo("データベースを選択しました"); } $name=$_POST["name"]; $meka=$_POST["meka"]; $mekanum=array("ミズノ","ヨネックス","ブリヂストン"); $meka=$mekanum[$meka]; $query = "select name,meka from test where"; if($name != "") { $query = $query . " name like '%$name%' "; } if($meka != ""){ $query = $query . " and meka like '%$meka%' "; } $result = mysql_query($query); $num_rows=mysql_num_rows($result); ?> <br>検索結果<br> <?php if($num_rows== 0){ $message="該当するデータはありませんでした"; } else $message=$num_rows ."件ヒットしました"; echo $message; ?> <br><table border=1><tr><td>名前</td><td>メーカー</td></tr><br> <?php while($row = mysql_fetch_array($result)):?> <tr><td><?php echo "$row[name]"; ?></td><td><?php echo "$row[meka]"; ?></td></tr> <? endwhile; ?> </table> <a href="html.html">再検索</a> </body> </html> htmlのソース <html> <head> <title>検索</title> <meta http-equiv="Content-Type" content="text/html;charset=eucjp"> </head> <body> <form method="POST" action="php.php"> <table border> <tr> <td height="30"><font size="5">&nbsp;ラケット名</font> <td height="30">&nbsp;<input type="text" name="name" size="40" maxlength="255"> </td></tr> </table> <table border> <tr> <tr> <td>メーカー</td> <td> <input type="radio" name="meka" value="ミズノ">ミズノ<br> <input type="radio" name="meka" value="ヨネックス">ヨネックス<br> <input type="radio" name="meka" value="ブリヂストン">ブリヂストン<br> <br> </td> </tr> </table> </SELECT> </td> </table> <input type="submit" name="submit" value="検索"> <input type="reset" value="条件クリア"> </tb> </body> </html> 分かる方がいたら教えていただきたいです、助言や指摘などありましたら、よろしくお願いします。

  • php→mysqlへの接続が出来ない(初心者)

    レンタルサーバーのMySQLへPHPから接続したいのですが、うまくいきません。 ソースコードは以下の通りで、 ========ソースコード================== <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> (↑head内記述) <?php $my_con = mysql_connect("mysql5.heteml.jp","User","Pass"); if ($my_con == false) { die("失敗"); }else{ echo "成功!!"; } ?> ================================ 結果、以下のエラー表示が出ます。 =========エラー文=================== Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'mysql5.heteml.jp' (10060) in C:\xampp\htdocs\wakuphp\test-connect.php on line 9 失敗 ================================ ちなみに、ソースコードの9行目は 『$my_con = mysql_connect("mysql5.heteml.jp","User","Pass");』で、 phpMyAdmin上で言語設定は"Japanese(ja-euc)"です。 原因が解らず困っております。有識者の方いらっしゃいましたら宜しくお願いします!

    • ベストアンサー
    • PHP
  • PHP・MYSQL超初心者です。

    PHP・mysql初心者です。掲示板を自分で考えて作っているのですが、 わからないところがあります。PHPを勉強してから、まだ月日が 経っていないので基本的なことでつまづいています。 登録画面で氏名・年齢を入力し、登録をクリックするとmysqlに データが保存され、そのデータを一覧で表示させたいです。 つまづいている所です。 1)mysqlにデータを保存する所 2)no・氏名・年齢をテーブルで表示する所 (noは自動的に1~順に振りたいのですが) 実用的ではないかと思われますが、宜しくお願い致します。 サイトや書籍で探しては見たのですが、基本的なことだと思う ので、あまり詳しく載っているのがなく困っています。 どなたかご教授下さい。 *form.html <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <form method="post" action="form.php"> 氏名:<input type="text" name="simei"><br> 年齢:<input type="text" name="tosi"><br> <input type="submit" value="登録"><br> </form> </body> </html> *form.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <? $simei=$_POST["simei"]; $tosi=$_POST["tosi"]; $db=mysql_connect("サーバーアドレス","ユーザー名","パスワード") or die("接続失敗"); print("デ―タベースサーバーに接続できました<br>"); mysql_select_db("データベース名")or die("データベースが見つかりません".mysql_error()); print("データベースに接続しました<br>"); //ここから下の記述方法がわかりません $a="insert into mihon_list(simei,tosi)values('$simei','$tosi');"; mysql_query($a)or die("命令が違います"); ?> 登録しました! </body> </html> *itiran.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <table width=70% border> <tr><th>no</th><th>氏名</th><th>年齢</th></tr> </table> </body> </html>

    • ベストアンサー
    • PHP
  • PHPからMySQLのデータベースが作成できない

    PHP:4.4.4 MySQL:4.1.21 です。 PHPからデータベースを作りたいのですがうまくいきません。 以下のように記述しています。 $sql = "CREATE DATABASE ".$DBNAME; $rst = mysql_query($sql,$con); $DBNAMEには作りたいデータベースの名前が入っています。また、$conにはIDが入っており接続はできているようです。しかしこの後で$rstをechoするとTRUEでもFALSEでもなく、何も入っていない状態です。 これはどうすればデータベースをcreateできるのでしょうか? 非推奨のようですがmysql_create_dbを使ってたところ画面が真っ白になってしまいました。

    • 締切済み
    • PHP