PHP初心者のためのデータベース設定ファイルとSQL実行ファイルの分け方

このQ&Aのポイント
  • PHPを使ってデータベースに接続する際には、設定ファイルとSQL実行ファイルを分けるべきです。
  • 設定ファイルでは、データベースの接続情報を定義し、SQL実行ファイルではSQLを実行する処理を記述します。
  • 初心者でも簡単に実装できるサンプルソースや、smartyを使用したファイルの読み込み方法も解説しています。
回答を見る
  • ベストアンサー

データベースの設定ファイルとSQL実行ファイルを分けたいです。

はじめまして。 PHPを触り始めの者です。 今、mysqlに接続するPHPファイルを作って 接続までは行って成功はしました。 書き方としては、 http://www.phpbook.jp/tutorial/mysql/index3.html このページにあるような感じです。 その次に別でSQLを実行するPHPファイルを作り、 そこでSQLを実行することができません。 SQLは試した結果、間違いはないです。 SQL実行ファイル側でrequire_onceで 設定ファイルの読み込みさせて、次にすぐSQLを変数に入れて、 $result = mysql_query($sql)のような形で 出してみているのですが、 全然SQLの結果がprint_r($result)でプリントできません。 結果はたぶん配列状になる感じです。 何が悪いのでしょうか? 何か初心者でも見てわかる 簡単なDB接続専用ファイルとSQLコマンド専用ファイルを 分けて使ったサンプルソースなどがあれば教えてください。 全然、わからないのでそれに交えて解説していただけると 大変ありがたいです。よろしくお願いします。 またsmartyも使用できる環境みたいなので、 これをできれば使用したいのですが、 どのようにDBにつないだ ファイルを外部ファイルとして読み込みさせて 使用したらいいのでしょうか? 検索をかけてもpearとの絡みばかりでよくわかりません。 pearというものは調べた結果、 使用してるサーバ内に入ってない状態です。 よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • oraora777
  • ベストアンサー率20% (56/268)
回答No.1

http://www.phpbook.jp/tutorial/mysql/index6.html 同じサイトの別ページのこれみて >全然SQLの結果がprint_r($result)でプリントできません。 がどうしておかしいか理解しましょう。 >またsmartyも使用できる環境みたいなので、 まさかと思うけどレンタルサーバでPHPの動作されている? そうだったらサーバに被害を出す前に即刻やめること。 ローカルに環境を作ってやりなさい。

sscommon
質問者

お礼

回答ありがとうございます。 ローカルでやってみます。

関連するQ&A

  • PHP+PDO+MYSQL で実行されたSQL文の取得について

    PHP+PDO+MYSQL で実行されたSQL文の取得について PEARのDBからPDOへの移行をしていましてデバック用のSQL文取得で困っています。 $sql = "SELECT * FROM sample where id = ? And id2 = ?" PEARのDBでは $db->query($sql,array(1,5)); $db->last_query; で実行したSQL文を取得することは可能でした。 PDOの場合 $sql_result = $pdo->prepare($sql); $sql_result->execute(array(1,5)); でリプレースフォルダ(クォート処理?)を利用してSQLを実行出来るようですが、 実行したSQLを確認する方法がマニュアル等を読みましたがどうしても分かりません。 どなたかご存知の方がいらっしゃいましたらご教授お願い致します。

    • ベストアンサー
    • PHP
  • データベースに情報が登録されない・・・

    お世話になってます。 現在カゴヤのサーバーでデータベースに情報を登録しようと試みているのですが、登録できません。ぜひみなさんのお力を貸して下さい。phpは初心者なのでわかりやすく教えて頂けると嬉しいです。 ----------------------------------------------------------------- カゴヤPEARインストール済み PHP 5.2.6 Apacheバージョン Apache/1.3.41 MySQLバージョン 5.0.33 ----------------------------------------------------------------- <?php //PEARのDBライブラリを読み込む require_once("DB.php"); // データベースとの接続情報を記述 $dsn = "mysql://ユーザ名:パスワード@localhost/データベース名"; $db = DB::connect($dsn); if(PEAR::isError($dsn)){ print "ConnectError"; exit; } $sql = "INSERT INTO テーブル名 VALUES ('111112222233','1111111111','2222222222','3333333333','4444444444','5555555555','6666666666','7777777777','8888888888','9999999999','1212121212','2323232323','3434343434','4545454545')"; $res = $db->query($sql); $num = $db->affectedRows(); print $num . "rows Update"; ?>

    • ベストアンサー
    • PHP
  • PHPでデータベースにアクセスするには?

    データベース初心者です。 レンタルサーバーはロリポップを使っています。 これからphpMyAdminを使ってデータベースを作ることが出来たらと考えております。先ずはその流れを把握しておきたいと思いましてPHPファイルからの接続を成功できたらと考えましたが、PHPについても知識に乏しくどのような記述にすればphpMyAdminに接続できるのかというところで止まってしまってます。 どなたかお詳しい方がいらっしゃいましたらご指導いただけたら幸いです。よろしくお願いいたします。 以下は他のサイトで見つけたのですが接続できないようです。 //接続 $connect = mysql_connect($server,$user,$pw); //データベース選択 mysql_select_db($database,$connect); //sql実行 $result = mysql_query($sql); //データ取得 mysql_data_seek($result,0); $a=mysql_fetch_array($result,MYSQL_NUM);

    • 締切済み
    • PHP
  • 外部ファイルでクエリを実行したい

    「クエリを実行している間にローディング画像を表示する」という処理をしたいです。 外部ファイルの[load.php]内で「データベース接続→mysql_queryを実行する」という処理を 行い、[index.php]で結果を表示したいのですが、うまくいきません。 ※load.phpの中身をindex.php内に書いた場合は成功する ※load.phpの読み込み自体はできている。 [index.php] <script type="text/javascript"> $(function(){ $("#sample").load("load.php"); }) </script> <div id=sample> <div id="loader"><img src="edit/img/loader.gif" width="24" height="24" alt="Loading..." /></div> <?php echo $num; ?> </div> [load.php] <?php $conn = mysql_connect("localhost","DB","pass",true); mysql_query("SET NAMES utf8") or die("can not SET NAMES utf8"); mysql_select_db('DB',$conn); $sql = "SELECT ~" $result = mysql_query($sql) or die(mysql_error()); $num = mysql_num_rows($result); ?>

    • ベストアンサー
    • PHP
  • SQLのどこがおかしいでしょうか?

    PHP4、MySQLです。 for($i=1;$i<34;$i++){ $sql = "select count(group) as cnt".$i." "; $sql.= "from stock "; $sql.= "where group=".$i." "; //print "sql= ".$sql."<br>"; $result = mysql_query($sql,$db) or die("失敗しました".mysql_error ()); $Row = mysql_fetch_array($result, MYSQL_ASSOC); $cnt.$i = $Row['cnt".$i."']; } としています。どこがおかしいでしょうか? 教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPとSmartyを使い、データベースからのデータを表示したい。

    PHP・Smartyを使い、DBからの表示を行おうとしています。 基本的な作業だとは思うのですが、なかなかできないので、教えてください。 ソースコードです。 //////PHPのコード <?php require_once('Connections/dbconn_mylocal.php'); ?>//DBへの接続を行っている。ここは正常。 <?php $sql = 'SELECT * FROM c_movie'; $result = mysql_query($sql, $conn); while($row = mysql_fetch_array ($result)){ $movie = $row["movie_title"]; } $smarty->assign('movie', $movie); $smarty->display("test1120.tpl"); ?> /////////////////tplファイル <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Smartyで表示する</title> </head> <body> ({foreach item='con' from=$movie}) ({$con}) ({/foreach}) </body> </html> よろしくお願いします!

    • ベストアンサー
    • PHP
  • 下記バグ("SQL:\"$sql\"の実行に失敗しました。")が表示されます

    ※以下プラグラムが走りません。どこに問題があるか教えて下さい。 <?php /*==   ユーザ履歴確認  dis_career.php ==*/ session_start(); print <<<EOD <HTML> <HEAD> <TITLE>ユーザ履歴の表示</TITLE> EOD; //データベースに接続する $con = mysql_connect("","",""); $selectdb = mysql_select_db("",$con); if ($con == false) { print("データベースに接続できませんでした。"); exit; } $sql = "select * from tbl_user order by uid'"; $result = mysql_query($sql,$con); if ($result == false) { printf("SQL:\"$sql\"の実行に失敗しました。"); exit; } $rows = mysql_num_rows($result); //行数を取得 printf("<CENTER><H2><ユーザ履歴確認></H2></CENTER>"); print("<table border=\"1\" align=\"center\" >\n"); print("<TR><TH><ユーザID></TH><TH>名前</TH><TH>コース名</TH><TH>履歴表示</TH></TR>\n"); if ($rows > 0){ for ($j = 0;$j < $rows;$j++) { print("<FORM ACTION=\"career.php\" METHOD=\"post\" TARGET=\"right\">"); $data=mysql_fetch_object($result); $uid=$data->uid; $name=$data->name; $course=$data->course; print("<TR>"); print("<TD>$uid</TD>"); print("<TD>$name</TD>"); print("<TD>$course</TD>"); print("<INPUT TYPE = \"hidden\" NAME = \"uid\ VALUE=\"$uid\">"); print("<TD><INPUT TYPE = \"submit\" NAME = \"career\ VALUE = \"履歴表示\"></TD>"); print("</TR>"); print("</FORM>"); } } ?> </BODY> </HTML>

    • ベストアンサー
    • PHP
  • batファイルのようにSQLを実行

    WindowsでMySQLを使用しています。 数十個のSQLを繰り返し発行したいのですが、題名の通りbatファイルのように、おのおののSQLコマンドを一個の実行ファイルにし、ダブルクリックで実行できませんか。 お願いいたします。

    • ベストアンサー
    • MySQL
  • phpとデータベース

    書籍のサンプルを実行しても表示されません pearのインストールが怪しいですが、どこを直せばいいかわかりません。 ご教授お願いいたします。 <HTML> <HEAD> <TITLE>PHPのテスト</TITLE> </HEAD> <BODY> <?php require_once("DB.php"); $dbUser = "sample"; // ユーザー名 $dbPass = "password"; // パスワード $dbHost = "localhost"; // ホスト名 $dbName = "sampledb"; // データベース名 $dbType = "mysql"; // データベースの種類 // MySQL="mysql", PostgreSQL="pgsql", MS SQL-Server="mssql", ODBC="odbc" などを設定 // 接続文字列の作成 $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; // データベースに接続 $conn = DB::connect($dsn); // 接続に失敗したらメッセージを表示して終了します。 if (DB::isError($conn)){ die($conn->getMessage()); } print('接続に成功しました。'); // データベースから切断します。 $conn->disconnect(); ?> </BODY> </HTML>

  • データベースの中にあるソースコードを実行させたい

    こんにちは。php初心者です。 データベースの中にphpコードを保存して、それをphpで呼び出して中のソースを実行させたいのですがphpコードがそのまま表示されてしまいます。何か良い方法はありますでしょうか? ●データベースの中身 [ID] 0 [contents] $test="テスト"; ●ソース <?php $db = mysql_connect('localhost','root'); mysql_select_db('hoge',$db); $id = mysql_escape_string(0); $sql = "select * from contents where ID = '$id';"; $contents = mysql_query($sql,$db); mb_http_output ( 'UTF-8' ); $aryCol=mysql_fetch_assoc($contents); $a = $aryCol['contents']; echo $a; echo $test; ?> ●実行結果 $test="テスト"; ●開発環境 Apache2.0.59 PHP4.3.2 MySQL4.0.26 と、いうような感じです。実行結果は「テスト」という文字のみ表示させたいのですが、$aに入っているソースコードがそのまま表示されてしまい、$testには何も入っていないままです。 このような処理は不可能なのでしょうか?またデータベースに入っているソースコードの処理を行いたい場合、どのような処理をすればよろしいでしょうか? 私では経験不足なため皆様のお知恵を拝借できればと思い質問させていただきました。くだらない質問で大変恐縮ですがご回答のほうよろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう