• 締切済み

PHPでExcelファイルにODBC接続

ASPでExcelファイルにODBC接続できる環境下で、同様に、PHPでExcelファイルにODBC接続しようとすると、上手くできません。 <?php $DSN = "database_1"; $DBUSER = ""; $DBPASSWORD = ""; $con = odbc_connect($DSN ,$DBUSER, $DBPASSWORD); if ($con) { print "Excelデータベースに接続しました!<br><br>"; } else { print "Excelデータベースに接続できませんでした!<br><br>"; } $sql = 'SELECT * FROM [jewery$]'; $result = odbc_exec($con, $sql); while ($rows = odbc_fetch_object($result)) { print($rows->msg . "<br>"); } odbc_close($con); print "Excelデータベースとの接続を解除しました!<br><br>"; ?>

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

みんなの回答

  • noris02
  • ベストアンサー率74% (56/75)
回答No.1

どこまで うまくいってるのでしょうか? そして どこで つまづいているのでしょうか? $con = odbc_connect($DSN ,$DBUSER, $DBPASSWORD); で こけてるのか、 $result = odbc_exec($con, $sql); で こけてるのかを 精査していく必要があると思います。 他のスクリプトでは、excelファイルとの連携は うまくいってるのでしょうか? そもそもの権限はあるのでしょうか? エラーログなど少し見てみてください。 もしくは、アラートを デバッグ用に はさんでみるなど。

Feruza
質問者

お礼

回答どうもありがとうございました。 デバッグ時のエラーメッセージについては、下記URIを見て解決しました。 http://blog.livedoor.jp/kazuna_memo/archives/1463949.html しかしながら、 The debug session could not be started. Please make sure that the debugger is properly configured as a php.ini derective. と表示されるようになりましたが…。

Feruza
質問者

補足

php.ini設定の問題かと考えていました(下記URIのものと同一)。 http://www.php.net/manual/ja/install.windows.iis7.php Excelデータベースに接続できませんでした! Excelデータベースとの接続を解除しました! と表示されます。従って、最初の処理では戻り値がfalseと考えていました。 $con = odbc_connect($DSN ,$DBUSER, $DBPASSWORD); の行にブレークポイントを付けて、デバッグすると、添付ファイルのようなエラーが表示されます。 ASP(VBScriptを使用)でODBC接続すると、Excelファイルとの連携は上手くいっています。 ユーザ名、パスワードは未使用です。 エラーログは、.metadataフォルダの直下にある.logファイルのことでしょうか? PHPとEclipseに不慣れで申し訳ありません。 追伸:本日再度確認してみたところ、 Excelデータベースに接続できました! Excelデータベースとの接続を解除しました! と表示されました。原因は分かりません。お騒がせしました。

関連するQ&A

  • phpからsqlserverへの接続

    $serverName = '.\\SQLEXPRESS'; $connectionInfo = array( 'UID' => 'sa', 'PWD' => 'ks78', 'Database' => 'Movies' ); $conn = sqlsrv_connect( $serverName, $connectionInfo ); if( $conn === false ){ echo "Cound not connect.\n"; die( print_r( sqlsrv_errors(), true)); } 上記スクリプトですと接続できるのですが、 下記のスクリプトではどうしても接続ができません。 エラーからサーバー名?と思いManagement studio のサーバー名 localhost\SQLEXPRESS に変更しても接続できませんでした。 お教え願います。 $DBSERVER = ".\\SQLEXPRESS"; //SQL Serverサーバー名 $DBUSER = "sa"; //ログインユーザー名 $DBPASSWORD = "ks78"; //パスワード $DBNAME = "sample"; //データベース名 //SQL Serverに接続 $con = mssql_connect($DBSERVER, $DBUSER, $DBPASSWORD); if ($con) { print "SQL Serverに接続しました!<BR><BR>"; } else { print "SQL Serverに接続できませんでした!<BR><BR>"; }

    • 締切済み
    • PHP
  • PHPにてMySQLとの接続をオープンできない。

    環境 OS:winXP SP2 HE(localhost) Apache 2.0.52 MySQL 5.0.2 PHP 5.0.3 Apache,MySQL起動しています。 自動起動なのでMySQLのタスクトレイの表示はありませんがMySQLCommandLineClientでログインできますし、SQL文も通ります。 データベースは用意してあります。 必要な設定は済んでいると考えています。 [httpd.conf,my.ini] PHPコードだけのスクリプトは動きます。 ファイルはApache2\htdocs\に入れて、ブラウザで呼び出しています。 要点 PHPスクリプトからMySQLとの接続をオープンできないようです。 何が悪いのかご意見ご教授頂ければ幸いです。 サンプル 以下のように単純に接続するphpファイルを作成しましたがブラウザは真っ白になったままです。 <?php $dbserver = "localhost"; $dbuser="root"; $dbpassword="パスワード"; $con = mysql_connect($dbserver,$dbuser,$dbpassword); if($con){print"OK!"; }else{print"NO!";} ?>

  • 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で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から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
  • AccessからODBC経由でのSQLServerへの接続

    Access(2002)からSQLServer2000(8.0 Developer Edition)へODBC経由で接続にいってテーブルを参照したのですが読み取り専用でデータの変更、レコードの追加・削除等ができません。 データの変更等ができるようにしたいのですが、どうすればよいのでしょうか? 接続するときのユーザーは接続先のデータベースに対してオーナー権限を持っています。また、DSNはシステムDSN、ファイルDSNでそれぞれ作り接続を試してみましたが両方とも読み取り専用で開いてしまいました。 ちなみにPHPでODBC接続してINSERTするプログラムを作り動かしたところ問題なく動きました。 宜しくお願い致します。

  • PHPからODBCによるOracle10gへの接続

    Windows2003Serverに展開しているPHPベースのページからODBCを経由して、Oracle10gへアクセスしようとすると以下のようなエラーが表示されてしまいます。 -------------------------------------------- Warning: odbc_connect(): SQL error: 指定されたドライバはシステム エラー 5 (Oracle in OraDb10g_home1) のため読み込めませんでした。, SQL state IM003 in SQLConnect in c:\php\pear\DB\odbc.php on line 129 データベースの接続に失敗しました。 -------------------------------------------- コントロールパネルのODBC設定でのテストはうまくいくんですが・・。 同様の環境で同様なトラブルの原因と対処策をご存じの方がいらっしゃったら、ご教授いただけないでしょうか?

  • CSE SQLEXPRESS ODBC接続ができません

    初心者です。 同じPCにSQLSERVER EXPRESS 2005を入れており、VISUAL STUDIOで使用しております。 そこでSQL作成ツールのCSEからSQLSERVERを使用するために、ODBC接続を作成してSQLSERVERで作成したデータベースに接続したいのですが、ODBC接続がうまく作成できません。 行っている設定方法は、 ユーザDSNでサーバ(local)を選択。 WINDOWS NT認証を使用を選択。 しかし、規定のデータベースの選択で、 master等は出て来て接続できるのですが、接続したい自分で作成したデータベース名が表示されません。 ほかに何らかの設定が必要なのでしょうか? よろしくお願いします。

  • ODBCからSQLServerに接続するには?

    SQLドシロウトです。力をお貸しください。 SQLを勉強しようと本を購入しました。実際パソコンで入力しながら勉強しようと思い、本の説明にしたがって、 「コントロールパネル」の「ODBCデータベース(32ビット)」から「追加」で新しいデータソース名とユーザが入力するSQLServer用のログインIDを入力してSQLServerへつなげようとしますが、「指定されたSQLServerが見つかりません」とエラーになります。いろいろ調べてみましたが分からず、ただ私の考えになかった知らない事があるようだと感じました。 そこで、教えてください。 Win98でJava環境とイクリプスとトムキャットが入ってます。「コントロールパネル」の「ODBCデータベース(32ビット)」の「システムDSN」には何も表示されません。 ・同パソコン内にSQLサーバーを設定できるのか。 ・SQLServerというソフトを別途インストールしないとODBCから設定できないのか。もしそうならバージョンはどれか。 ・SQLServerを設定後、オラクル設定はできるのか。 ●ODBCからSQLServerへ接続するのに必要な作業を教えてください。よろしくお願いします。

  • PHPでMySQLに接続失敗

    Apache_2.0.55 php-5.1.2-win32 mysql-5.0.21-win32 windows XP HOME Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\sample\smp01.php on line 9 とエラーがでました。 以下の設定しているのですが、このようなエラーがでました PHPとApacheのテストは成功しています mysqlコマンドラインツールの起動・操作もできました mysqlのパスワードは設定はしていません PHPのスクリプトは実行できるのですが PHPとMySQLの接続がうまくいきません 色々と、調べているのですが原因がわかりません 初心者です、どうぞ宜しくお願いします 1 <?php 2 3 $DBSERVER = "localhost"; //MySQLサーバー名 4 $DBUSER = "root"; //ログインユーザー名 5 $DBPASSWORD = ""; //パスワード 6 $DBNAME = "sampledb"; //データベース名 7  8 //MySQLに接続します 9 $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); libmysql.dllをC:\WINDOWS\system32にコピー PHP.iniファイルでextension=php_mysql.dllをコメントから復帰 Apacheを再起動

    • ベストアンサー
    • MySQL