[PHP-users 20225]mySQLに接続して指定テーブルのフィールド数を得られない
齊藤 智宏
xaitoh_php @ yahoo.co.jp
2004年 2月 4日 (水) 04:06:42 JST
齊藤と申します。
PHPからmySQLに接続して指定テーブルのフィールド数を得る、というだけの
処理が出来なくて悩んでおります。
マシン構成・設定などは以下の通りです。
●サーバーマシン構成
PHP Version 4.3.4
Apache/2.0.48
FreeBSD 4.8-RELEASE
一般的なパソコン
以下ソースです。
※データベースdb01に既にテーブル作成済み・データ入力済みという前提
データベースの作成・データの入力にはWindowsのツールを使用。
---test.php---
<?php
include "./common.inc";
include "./DbConnect.inc";
echo "ユーザー名 : ";
echo DB_USER;
echo "<BR>";
echo "パスワード : ";
echo DB_PASS;
echo "<BR>";
echo "ホスト名 : ";
echo DB_DOMAIN_NAME;
echo "<BR>";
echo "データベース名 : ";
echo DB_NAME;
echo "<BR>";
$sql = "SELECT * FROM user";
DbConnect_MYSQL($sql);
$AllFields = mysql_num_fields($result);
echo "全フィールド数は、".$AllFields."でした。<BR>";
echo "</BODY></HTML>";
exit;
?>
---common.inc---
<?php
define( "DB_DOMAIN_NAME", "localhost" );
define( "DB_NAME", "db01" );
define( "DB_USER", "hoge");
define( "DB_PASS", "hogedayo");
?>
---DbConnect.inc---
<?php
function DbConnect_MYSQL($sql) {
global $result;
$con=mysql_connect(DB_DOMAIN_NAME,DB_USER,DB_PASS);
if($con==false){
print("データベースに接続できませんでした。\n");
exit;
}
else{
print ("データベースに接続しました。<br><br>\n");
print ("conは、 $con でした。<BR>\n");
}
$db=mysql_select_db(DB_NAME,$con);
if($db==false){
print("データベース名の取得に失敗しました。\n");
exit;
}
else{
print ("データベースの取得に成功しました。<br><br>\n");
print ("dbは、 $db でした。<BR>\n");
}
$result=mysql_query($sql,$con);
if ($result == false){
printf("sql:\"$sql\"の実行に失敗しました。\n");
//exit;
//エラーメッセージを見るためにコメントアウトしました。
}
//mysql_close ($con);
//return $result;
}
?>
実行し、ブラウザの結果表示を見ると
-----------------------------
ユーザー名 : hoge
パスワード : hogedayo
ホスト名 : localhost
データベース名 : db01
データベースに接続しました。
conは、 Resource id #5 でした。
データベースの取得に成功しました。
dbは、 1 でした。
sql:"SELECT * FROM user"の実行に失敗しました。
Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in /usr/local/apache2/htdocs/test.php
on line 48
全フィールド数は、でした。
----------------------------
上記のようになりました。
英語理解力がないので、エラーメッセージをエキサイト翻訳にかけると、
「供給された議論はaaaaの中の有効なMySQL結果資源ではありません。」
※aaaaはinの後のパスと思って解釈
…余計に分からなくなりました。。。
基本的な事なので、過去に同じ質問が上がっている、又は基本的すぎるゆえに
他サイトにいくらでも解決策は載っている、と思ったのですが、見つける事が
できませんでした。ただ、
http://ns1.php.gr.jp/pipermail/php-users/2002-June/008010.html
上記質問がかなり近い内容だと思ったのですが、解決に至ったのかが不明です。
同じようにエラーメッセージを表示させてみたりしたのですが、結果は上記通り
で分かりませんでした。
どなかたご存知の方おりましたらご教授ください。
よろしくお願いします。
---------------------------------------------------------------------------
齊藤 智宏
xaitoh_php @ yahoo.co.jp
__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!
http://bb.yahoo.co.jp/
PHP-users メーリングリストの案内