• 締切済み

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>

みんなの回答

  • xitoaki
  • ベストアンサー率35% (36/101)
回答No.1

> 書籍のサンプルを実行しても表示されません 何がどう表示されないのかがわかりません。 もっと具体的に。 OSとか、環境とか…(この問いかけも具体性に欠けますが) これだけ情報が少ないと、根本的な問題として PHP、データベース、WEBサーバ等が インストールされているかさえ疑ってしまいます。

d0322013
質問者

補足

すいません説明不足でした。。 phpはハージョン5.2.6でapach2.0.63です。 msqlは5.0.45です。 OSはXPです。 一応他のphpプログラムはブラウザに表示されたのですが、問題のプログラムは「ページが表示されません」となってしまいます。

関連するQ&A

  • FC4でmysqlを使用して PEAR DB への接続ができない

    FC4に、yumでPHP5.0.4、php-pear-5.0.4、php-mysql-5.0.4、(mysql-4.1.20,mysql-server-4.1.20)をインストールしました。 <?php $con = mysql_connect("localhost","taro","password") or die("接続出来ません"); print "接続しました"; mysql_close($con); ?> を実行すると、「接続しました」と出ます。ところが、 <HTML> <HEAD><TITLE>PHP test</TITLE></HEAD> <BODY> <?php require_once("DB.php"); $dbUser="taro"; $dbPass="password"; $dbHost="localhost"; $dbName="testdb"; $dbType="mysql"; $dsn="$dbType://$dbUser:$dbPass:@$dbHost/$dbName"; $conn = DB::connect($dsn); if(DB::isError($conn)){ die($conn->getMessage()); } print ('DBに接続しました'); $conn->disconnect(); ?> </BODY></HTML> を実行すると、DB Error: connect failed と出て、接続できません。 php.iniは、 include_path = ".:/usr/share/pear:/php/includes" としてあり、 [root@FC4 ~]# ls -l /usr/share/pear/ で調べても drwxr-xr-x 2 root root 4096 5月 27 18:06 DB -rw-r--r-- 1 root root 38937 11月 8 2005 DB.php となっています。 パスの切り方が間違っているでしょうか? どのようにすれば接続できるでしょうか?よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • XserverでpearのDBでMySQLに接続

    xserver(レンタルサーバー)でPHPでpearのDBクラスを使ってMySQL(データベース)に接続ができません。 Xserver(レンタルサーバー)環境 MySQL5 バージョン:5.0.77 MySQL5 ホスト名:xxx.xserver.jp(仮名) PHP Version 5.3.3 include_path .:/usr/share/php53/pear :/usr/share/php Xserver PHP関連の仕様一覧 PEARインストール済み <インストール済みライブラリ> ・Archive_Tar ・Auth ・Console_Getopt ・DB ・HTML_Common ・HTML_QuickForm ・HTTP ・HTTP_Header ・HTTP_Download ・Mail ・Net_SMTP ・Net_Socket ・Pager ・PEAR ・XML_Parser ・XML_RPC ・Structures_Grap データベースは同じくXserverに設置されているphpmyadmin(MySQL5)で作成しました。 /xxx.xsrv.jp/public_html/php_sample/Section63 の中に(dbtest2.php) でおいています。 ★以下のコードで接続ができません。 どこが間違っているのか教えて下さい。 ↓ <?php require_once("DB.php"); $dbUser = "sample"; // ユーザー名(仮名) $dbPass = "password"; // パスワード(仮名) $dbHost = "xxx.xserver.jp"; // ホスト名(仮名) $dbName = "sampledb"; // データベース名(仮名) $dbType = "mysql"; // データベースの種類 $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; $conn = DB::connect($dsn); // 接続に失敗したらメッセージを表示して終了します。 if (DB::isError($conn)) { die($conn->getMessage()); } print('接続に成功しました。'); // データベースから切断します。 $conn->disconnect(); ?> ★ちなみにPHPのmysql_connect関数からは接続成功しました。 ↓ <?php $con = mysql_connect("xxx.xserver.jp", "sample", "password") or die("接続できません。"); print "接続に成功しました。"; mysql_close($con); ?>

    • ベストアンサー
    • PHP
  • MySqlに接続できない

    環境:PHP5,MySql5,XP 下記の構文でDBへの接続エラーがでます。 php.iniでのインクルードpathの設定もあっています。 (DB.phpも上記インクルードpathにあります) 'pear list'コマンドでDBも確かにインストールされています。 これ以外でチェックするところがあれば、教えてください。 <?php // DBクラスモジュールをインクルード require_once("DB.php"); $dbtype = "mysql"; $sv = "localhost"; $dbname = "********"; $user = "root"; $pass = "******"; // データベースに接続する $dsn = "$dbtype://$user:$pass@$sv/$dbname"; $conn = DB::connect($dsn); if (DB::isError($conn)) { die("接続エラー"); } ?>

    • ベストアンサー
    • PHP
  • php ログインフォーム作成

    サーバーはさくらインターネットのプレミアムプラン phpのバージョンは 5.2.12 データベースのバージョンはMySQL 5.1 です。 <?php //DB設定 $dbhost = 'mysql***.db.sakura.ne.jp'; $dbuser = 'test'; $dbpass = 'test'; $dbname = 'members'; $ok_flg = 0; $msg = ""; //DB接続 $link = mysql_connect($dbhost,$dbuser,$dbpass); //使用するDBを選択 $conn = mysql_select_db($dbname,$link); if (!$conn) { die('Connect Error (' . mysql_connect_errno() . ') ' . mysql_connect_error()); } if (count($_POST) != 0) { $sql = sprintf("SELECT * FROM member WHERE id=? AND password=?"); $result = mysql_query($sql); ---- この先がわかりません ---- ***************************************** ***************************************** ***************************************** ---- ここまでがわかりません ---- if ($count == 1) { $ok_flg = 1; } else { $msg = '<span style="color:#ff0000;">ユーザーIDまたはパスワードが違います。</span>'; } } if ($ok_flg == 0) { echo <<< EOL $msg <form method="post" action=""> ユーザーID: <input name="id" /> パスワード: <input name="password" type="password" /> <input type="submit" value="ログイン" /> </form> EOL; } else { session_start(); $_SESSION["login_flg"] = 1; header ("location: ./"); } // MySQLへの接続を閉じる mysql_close($link); ?> ********の場所で困っています。 この先はどのように記述したらよろしいでしょうか? お分かりの方がいらっしゃいましたらご教授いただければと思います。

    • ベストアンサー
    • PHP
  • phpでのmysqlからjsonファイルの変換

    <? php   include("mysql2json.class.php");   //MySQL接続設定 define("DBSV", "PHPSRV"); define("DBNAME", "koukin"); define("DBUSER", "root"); define("DBPASS", "");   //MySQL接続 $conn = mysql_connect(DBSV, DBUSER, DBPASS) or die(); mysql_query("SET NAMES utf8",$conn); mysql_select_db(DBNAME, $conn);   //SQLクエリの発行 $num=0; $sql = "SELECT * FROM komento"; $result = mysql_query($sql, $conn); $num=mysql_affected_rows();   // クラスを呼び出して出力 $objJSON=new mysql2json(); print(trim($objJSON->getJSON($result,$num)));   ?> というプログラムをあるサイトを参考にさせてもらってしようさせてもらっているのですが、なぜか実行すると、getJSON($result,$num))); ?>としか出力されません。 どうしてでしょうか?

    • ベストアンサー
    • PHP
  • PHPで生成した値をデータベースに送る方法

    題名の通りです。入力画面上で自動生成させた値(今回はパスワード)を入力したテキストと一緒にデータベースへ送りたいと思ってますが行き詰りました。テキストは無事データベースへ送信されますがパスワードが送信されません。というか送信側の記述方法が分からず何も書いていないので当然ですがさっぱりです(;;)何卒、ご指導お願いします。(なお、プログラムの一部はネット上に公開していた物を使わせていただいております。) 【入力画面側 nyuryoku.php】 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </HEAD> <BODY bgcolor="#FFFFFF" text="#000000"> <FORM name="form1" method="post" action="view.php"> <?php //----------------------// // パスワードを生成する // //----------------------// // パスワードの長さ設定 define(PASSWORD_LEN, 9); // 乱数表シードを決定 srand((double)microtime() * 12345678); // パスワード配列を作成 $pwelemstr = "abcdefghkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ2345679"; $pwelem = preg_split("//", $pwelemstr, 0, PREG_SPLIT_NO_EMPTY); // ランダムパスワードを生成⇒表示。 print makePassword(PASSWORD_LEN) . "\n"; // ランダムパスワードを生成する関数 function makePassword($length) { global $pwelem; $password = ""; for($i=0; $i<$length; $i++ ) { // パスワード文字列を生成 $password .= $pwelem[array_rand($pwelem, 1)]; } return $password; } ?> <BR><BR> BACK_PASS<BR> <INPUT type="text" name="back_pass"> <BR> FRONT_PASS<BR> <INPUT type="text" name="front_pass"> <BR><BR> <INPUT type="submit" value="送 信"> </FORM> </BODY> </HTML> 【送信側 view.php】 <HTML> <HEAD> <TITLE>view.php</TITLE> </HEAD> <BODY> <?php require_once("DB.php"); $dbUser = "USER"; // ユーザー名 $dbPass = "PASS"; // パスワード $dbHost = "LOCALHOST"; // ホスト名 $dbName = "DATABASE"; // データベース名 $dbType = "mysql"; // データベースの種類 $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; // データベースに接続 $conn = DB::connect($dsn); // 接続に失敗したらメッセージを表示して終了。 if (DB::isError($conn)){ die($conn->getMessage()); } // POSTされたデータを受け取り、エスケープ。 $back_pass = addslashes($_POST['back_pass']); $front_pass = addslashes($_POST['front_pass']); $sql = <<<EOS INSERT INTO passkanri ( back_pass, front_pass ) VALUES ( '$back_pass', '$front_pass' ) EOS; if(preg_match("/Windows/", $_ENV["OS"])){ $sql = mb_convert_encoding( $sql, "SJIS", "EUC-JP"); } // SQL文を発行 $result = $conn->query($sql); if (DB::isError($result)) { die ($result->getMessage()); } $count = $conn->affectedRows(); print "データを" . $count . "件、挿入しました。"; // データベースから切断します。 $conn->disconnect(); ?> </BODY> </HTML>

    • ベストアンサー
    • MySQL
  • データベースに接続できない

    『PHP5逆引き大全500の極意』にあるサンプルスクリプトで PHPとMYSQLと学んでいます。 XAMPPもインストールし、スタンドアロンでMysqlを操作しようと しています。 しかし、どのサンプルスクリプトをいじっても接続できません。 require("config.php"); header("Content-Type: text/plain; charset=EUC-JP"); $db = odbc_connect(ODBC_CONNECT_DSN, ODBC_CONNECT_USER, ODBC_CONNECT_PASS) or die("データソースに接続できません!\n"); でエラーがでています。 ちなみにconfig.phpの内容 // DSN define("ODBC_CONNECT_DSN", "DSN=sample_db;"); // ユーザー名 define("ODBC_CONNECT_USER", "username"); // パスワード define("ODBC_CONNECT_PASS", "password"); // テーブル名 define("ODBC_TABLE_NAME", "php500"); となっています。SQL文を実行し、テーブルを作りましたが、 上手く言っているかどうか・・・。 文字コードをちゃんと設定していないせいか、????????のような データがカラムに入っています。 サンプルスクリプト上、データベースが自動作成されるスクリプトも あるのですが・・・。 1.useename、userpassの設定 2.phpMyAdminでデータベースを作成する方法 3.データベース作成時の文字コードの設定。utf?sjis? についてヒント頂けたら幸いです。

    • ベストアンサー
    • MySQL
  • phpで作成した構文が上手く動きません 。

    phpでmysqli構文が上手く動きません 質問します、よろしくお願いします。 現在 winVista、Xampp( apache、 php5、 mysql)にてプログラムの勉強をローカルで行っています。 ですが、書籍に載っていた以下のコードを実行してもエラーがでてうまく動きません。 幾ら調べてもわからず困っております、なにが原因でしょうか?ご教授をお願いいたします。 <?php /************************************************* * データベース操作 * */ require_once 'MDB2.php'; $sv = "localhost"; $dbname = "login_apri"; $user = "root"; $pass = "123456789"; $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; //---------------------------------------------------- // データベース接続 //---------------------------------------------------- function db_connect($dsn){ $conn =& MDB2::connect($dsn); // 接続に失敗したらメッセージを表示して終了します。 if (MDB2::isError($conn)){ die($conn->getMessage()); } return $conn; } //---------------------------------------------------- // 検索結果を多次元配列で受け取る //---------------------------------------------------- function select_arrays($conn, $sql){ $result = execute_sql($conn, $sql); // レコードの取得 $i=0; $data = array(); while ($rec = $result->fetchRow(DB_FETCHMODE_ASSOC)) { foreach( $rec as $key => $value){ $value = sjis2euc_for_Winodows($value); $data[$i][$key] = $value; } $i++; } // 検索件数 $count = $result->numRows(); // クエリー結果セットの開放 $result->free(); return array($data, $count); } // 検索件数 $count = $result->numRows(); // クエリー結果セットの開放 $result->free(); return array($data, $count); } /************************************************* ブラウザに表示されるエラーは以下の通りです。 Fatal error: Call to undefined method MDB2_Error::fetchRow() in C:\xampp\htdocs\HP\login_main\php_libs\module\dbtest3.php on line 32 32行目は while ($rec = $result->fetchRow(DB_FETCHMODE_ASSOC)) { どなたかご回答をなにとぞ宜しくお願いします。

    • 締切済み
    • PHP
  • phpで作成した構文が上手く動きません 。

    phpでmysqli構文が上手く動きません 質問します、よろしくお願いします。 現在 winVista、Xampp( apache、 php5、 mysql)にてプログラムの勉強をローカルで行っています。 ですが、書籍に載っていた以下のコードを実行してもエラーがでてうまく動きません。 幾ら調べてもわからず困っております、なにが原因でしょうか?ご教授をお願いいたします。 <?php /************************************************* * データベース操作 * */ require_once \'MDB2.php\'; $sv = \"localhost\"; $dbname = \"login_apri\"; $user = \"root\"; $pass = \"123456789\"; $dsn = \"$dbType://$dbUser:$dbPass@$dbHost/$dbName\"; //---------------------------------------------------- // データベース接続 //---------------------------------------------------- function db_connect($dsn){ $conn =& MDB2::connect($dsn); // 接続に失敗したらメッセージを表示して終了します。 if (MDB2::isError($conn)){ die($conn->getMessage()); } return $conn; } //---------------------------------------------------- // 検索結果を多次元配列で受け取る //---------------------------------------------------- function select_arrays($conn, $sql){ $result = execute_sql($conn, $sql); // レコードの取得 $i=0; $data = array(); while ($rec = $result->fetchRow(DB_FETCHMODE_ASSOC)) { foreach( $rec as $key => $value){ $value = sjis2euc_for_Winodows($value); $data[$i][$key] = $value; } $i++; } // 検索件数 $count = $result->numRows(); // クエリー結果セットの開放 $result->free(); return array($data, $count); } // 検索件数 $count = $result->numRows(); // クエリー結果セットの開放 $result->free(); return array($data, $count); } /************************************************* ブラウザに表示されるエラーは以下の通りです。 Fatal error: Call to undefined method MDB2_Error::fetchRow() in C:\\xampp\\htdocs\\HP\\login_main\\php_libs\\module\\dbtest3.php on line 32 32行目は while ($rec = $result->fetchRow(DB_FETCHMODE_ASSOC)) { どなたかご回答をなにとぞ宜しくお願いします。

    • 締切済み
    • PHP
  • データベースへの接続

    http://oshiete1.goo.ne.jp/qa3586557.htmlで作って、動いたプログラムからフォームのボタンを増やして、新しいテーブルに変えただけのので、 全体ソースは <html> <body> <?php $a_1 = $_POST["a"]; $b_1 = $_POST["b"]; $c_1 = $_POST["c"]; $d_1 = $_POST["d"]; $e_1 = $_POST["e"]; $f_1 = $_POST["f"]; $g_1 = $_POST["g"]; $h_1 = $_POST["h"]; require_once("DB.php"); $dbUser = "sample"; $dbPass = "password"; $dbHost = "localhost"; $dbName = "sampledb"; $dbType = "mysql"; $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; $conn = DB::connect($dsn); //接続にしっぱいしたらメッセージを表示して終了します。 if (DB::isError($conn)) { die($conn->getMessage()); } if($a_1 == "ない" and $b_1 == "ない" and $c_1 == "ある" and $d_1 == "ない" and $e_1== "ある"and $f_1== "ある"and $g_1== "ある "and $h_1== "ある") { $sql = <<<EOS SELECT * FROM c WHERE a IN ない AND        b IN ない      AND        c IN ある      AND        d IN ない AND        e IN ある      AND        f IN ある      AND        g IN ある AND        h IN ある EOS; } $result = $conn->query($sql); if (DB::isError($result)) { die($result->getMessage()); } $count = $result->numRows(); print "あなたは".$count."件あります。<BR>"; if($count>0){ ?> <br> <TABLE width="450" border="1" cellspacing="0" cellpadding="8"> <TBODY> <TR><TH>番号</TH><TH>名</TH><TH>説明</TH></TR> <?php while($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)) { ?> <TR><TD align="center"><?=$rs['id']?></TD> <TD><?=$rs['n']?></TD> <TD><?=$rs['s']?></TD></TR> <?php } ?> </TBODY></TABLE> <?php } $result->free(); $conn->disconnect(); ?> </BODY> </HTML> if($a_1 == "ない" and $b_1 == "ない" and $c_1 == "ある" and $d_1 == "ない" and $e_1== "ある"and $f_1== "ある"and $g_1== "ある"and $h_1== "ある") { $sql = <<<EOS SELECT * FROM c WHERE a IN ない AND        b IN ない      AND        c IN ある      AND        d IN ない AND        e IN ある      AND        f IN ある      AND        g IN ある AND        h IN ある EOS; } DB Error: syntax errorが表示され、多分、ここの条件が間違っていると思うのですが、解決策を教えてください。 お願いします。

    • ベストアンサー
    • PHP