• ベストアンサー

phpのデータベースへの接続

ducklingの回答

  • duckling
  • ベストアンサー率47% (88/185)
回答No.4

> Resource id #3と表示されて、最新の入力したデータの、 > レコードのIDが表示されませんでした。 $i = mysql_query("SELECT MAX(id) FROM hogehoge", $conn) or die ("SQL Error"); ↑mysql_query を echo しているのですから、 出力されるのは当然、Resource id です。 結果をプリントするためには、 mysql_result(リソースID,行番号,カラム名) みたいに、query結果を分割して出力しないとダメです。 mysql_result($i, 0, "MAX") で。

izaq
質問者

お礼

ducklingさん ご解説ありがとうございます。 queryの分割でうまくいきました。

関連するQ&A

  • PHPからデータベースへの登録について

    はじめまして。現在、仕事の関係でPHPのプログラムを勉強している者です。 早速ですが、質問させていただきます。 PHPで作成したフォームメールから別で用意したデータベースに 入力データを登録しようとしているのですが、エラーでうまく動作しません。 PHP側のコードミスもあるかもしれませんが、PHPを動作させているサーバーと データベースサーバーの文字コードが違う点も原因しているのでは?と調べている状況です。 フォームからのデータを送るPHP ⇒ Shift_jis PHPをアップしているWebサーバー ⇒ Shift_jis データベースサーバー ⇒ EUC-JP データベースへの接続は問題なく行えているようですので、 登録処理するコードの部分のみを書きます。(↓) ******************************************************************************** // データベースへの登録 $sql = "INSERT INTO FORM_DATA(DataNumber, Time, Name, Email, Area, Sex, Interest, Commnet, OS, IP) VALUES('$tsvcount', '$ymdhis', '$sender_name', '$mail_address', '$mail_area', '$mail_sex', '$mail_interest', '$mail_body', '$os', '$ip')"; $sql = mb_convert_encoding($sql, 'EUC-JP', 'sjis'); mysql_query("SET NAMES 'EUC-JP'"); $db_result = mysql_query($sql); print $sql; print $db_result; if (!$db_result) { exit('Error! データを登録できませんでした。'); } // データベースとの接続解除 $db = mysql_close($db); if (!$db) { exit('データベースとの接続を閉じれませんでした。'); } **************************************************************************** PHP&Webサーバーとデータベースの文字コードを統一すればいい話かもしれませんが、 事情により異なる文字コードの環境で開発しております。 上記の通り、データベースに送信するSQL文はmb_convert_encoding()で「EUC-JP」に変換し、 mysql_query($sql);でデータベースに送信している形です。 この状態で送信すると、エラーとなり送ったSQL文を処理してくれません。 文字コードの変換処理、コードの記述など何が原因なのか分からず困っています。 考えられる原因と、解決策があればご教授いただきたいです。 ちなみに私はPHPはもちろんプログラム自体もまだ経験が浅く、 基礎的なことも理解していないことがかなりあります。 その上でご説明いただけますと大変有難いです。 ではよろしくお願い致します。

    • 締切済み
    • PHP
  • 長い文章のデータベース格納について

    phpで会員制サイトの制作を勉強しています。 データベースへはPDOで接続しています。 MySQLデータベースを使用しています。 会員制サイトによくある、 各ユーザーの自己紹介文を保存したいのです。 500文字程度の文章になると思うのですが、 そういった長い文字列データはデータベースに保存してよいのでしょうか? 長い文字列はあまりデータベースには保存すべきでないでしょうか? また、データベースに保存すべきでない場合は どのように長い文字列を保存したら良いでしょうか? ご回答、よろしくお願いします。

    • ベストアンサー
    • PHP
  • データベースに"や'を保存できない

    phpで会員制サイトの制作を勉強しています。 データベースへはPDOで接続しています。 MySQLデータベースを使用しています。 自己紹介文のような長めの文章をデータベースのTEXT型カラムにUPDATEで保存したいです。 $stmt = $db->prepare("UPDATE member SET text=:text WHERE id=:id"); $stmt -> bindParam(':text ',$text,PDO::PARAM_STR); $stmt -> bindParam(':id',$id,PDO::PARAM_INT); $stmt -> execute(); というSQL文を作成し、 文字列データを保存することはできたのですが、 「"」や「'」のような記号を含めるとそれ以降の文章が消えた状態で保存されてしまいます。 例えば顔文字などで「"」や「'」のような記号を使用する場合もあると思うので、 できれば、データベースに保存したいです。 どうしたら安全に「"」や「'」が保存できるでしょうか? ご回答、よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでMySQLのデーターベースが書込み出来ない

    PHPとMySQLとJAVAスクリプトで作成しましたデーターベースについてお尋ねします。 PHPとMySQLで作成したデータベースの検索したり、読み込みを普通に可能ですが、書き込み及び、削除が出来ません。 PhpMyAdminでは書けます(データー入力出来ます)が、PHPプログラムからはデーターを入力したり、削除を行うことが出来ません。 そして、全くエラーも出ません。 PHP上では「書き込みました」と、いかにも正常なようなメッセージが返ってきます。 が、中身は空です。 システムが出来上がって問題なく3年以上使用していたのですが、自宅のLINUXサーバーのHDDが壊れましたので、再度システム構築をやり直しました。 MySQLとPHPも再インストールを行い再構築を行いました。 その後上記症状が出て書き込み、削除が出来なくなりました。 PHPのプログラムは全く触っておらず、変更も更新もしておりません。 念のためプログラムのチェックも何度もしておりますが、勿論これといって問題は見あたりません。 PHP.INI等の設定ファイルに問題があるのでしょうか。 それとも、MySQLに問題が有るのでしょうか。 宜しくご教授の程お願い致します。

  • htmlタグを含んだ文字のデータベースへの読み書き

    PHPで、「htmlタグを含んだ文字」を、 データベースへ読み書きする安全な方法を教えて下さい。 リンクタグや、フォントタグなどは、 そのまま使用できるようにしたいです。 ■追加する時 htmlフォームからデータベースに保存(SQLインジェクション) ■編集する時 データベースからデータを読み出す(htmlエスケープ) htmlフォームで再編集し、データベースに保存(SQLインジェクション) こういう作業になるかと思いますが、 どのように処理したら、htmlタグを使いつつ、 安全に更新ができるでしょうか? 教えてくださいm(_ _)m

    • ベストアンサー
    • MySQL
  • PHP+ACCESSのデータベース接続について

    こんにちわ。PHP+ACCESSを使って、データベース接続を試みようとしておりますが、最初のところでつまづております。 <?php //データベースに接続する $DB = sqlite_open('db.mdb'); $SQL = "create table db (id integer ,name,time) $result = sqlite_query($DB, $SQL); ?> 上記のPHPで、ACCESSファイルを作成しましたが、作成したファイルを開くと、"データベース形式が認識できません"と表示し、データベースを閲覧することができません。 また、ACCESSから手動で作成したファイルをsqlite_openで接続しようとすると、sqlite_open(): file is encrypted or is not a database inエラーが表示接続することができません。 PHPとACCESSの相性の問題なのでしょうか。この原因がわかる方がいらっしゃいましたら、教えていただけないでしょうか。 宜しくお願い致します。 【php4.3.10 SQLite Library2.8.14 ACCESS2000】

    • ベストアンサー
    • PHP
  • PHP+MySQLで数千字程度のテキストを扱う

    PHPを勉強中で、入門書をつまづきながら読むくらいのレベルの者です。 例えば、PHP+MySQLでブログのようなシステムを作るとしたとき、本文にあたる短ければ数百字、長くて数千字のテキストを扱う場合にどのような方法をとればいいのか悩んでいます。 1. テキストファイルとして保存してデータベースにファイル名を保存し、ファイル名からPHPのテキストファイルを読み込む関数で読み込む 2. TEXT型(あるいはVARCHAR型?)でそのままデータベースに保存する の2つの方法のいずれかを考えており、 テキストの利用方法として、 1. そのままHTMLに出力して表示する。その際、データベースの同じテーブルに入っている記事タイトルなどのデータも利用する。 2. 複数ファイルから特定の文字列を含むもののみを選び出す(行番号などの情報は不要)。この際は他のデータは利用せず、例えば記事IDのようなものの配列が得られればよい。 のことをしたいと思っており、 また、その他の条件として 1. 動作が高速な方がいい(特に複数ファイルからの検索) 2. 直接テキストファイルのURLを指定して内容を読まれても、まあOK 3. 最大文字数は多分8000字程度で固定(書き込み時にチェック) を考えております。 総合的に考えてどちらの方法が優れているでしょうか? また、それぞれの方法で知っておいた方がいい制限事項などはありますか? 特に、正直なところVARCHAR型、TEXT型がどのようなアクセス速度など特徴を持つのかをまったく分かっていません。 ご教授宜しくお願いします。

    • ベストアンサー
    • 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でデータベースを呼び出してデータがなかった場合の処理をif文を使って行いたいのですがどうしたらいいのでしょう? $result = mysql_query("select id from table where id = 1"); として1というidが入ってない場合$resultの中身はどうなるのでしょうか? if(idが存在しない時の条件) { echo "そんなデータ登録されてないよー" }else{ echo "$result" } としたいのですがifの条件の作り方がわかりません。 みなさんならどうしますか?

    • ベストアンサー
    • MySQL
  • カテゴリ絞込みのテーブル表示の仕方(PHPのCSVデータベース)

    初心者な質問すみません。 CSVのデータベースからPHPでID別にカテゴリ表示されるのを作りたいのですが、考えているのはフレームひとコマにデータを表示して3列並べると改行して並べていくのを作りたいのですが 全部一列で並んでしまいます・・・ どのようなタグを使えばいいかわかる方いらっしゃいましたらお願いします。  □□□  □□□  □□  ↑ 上手く書けませんがこんな感じにしたいんです。

    • 締切済み
    • PHP