検索結果
PHP
- 全てのカテゴリ
- 全ての質問
- PHPとPostgreSQL接続 (スキーマ)
いつもお世話になっております。 現在、PHP(5.3.1)とPostgreSQL(9.2)で開発をしております。 エラーが発生しており大変困っております。 こちらが発生するエラーです。 Warning: pg_exec() [function.pg-exec]: Query failed: ERROR: schema スキーマが見つからないとのことです。 そして、以下がコードとなります。 <?php // PostgreSQL Connect if (!($cn = pg_connect("host=*** port=*** user=*** password=*** dbname=***"))) { die; } // PostgreSQL Select $sql = "select * from t_test.na1"; if (!($rs = pg_exec($sql))) { die; } // PostgreSQL Get Records $ct = pg_numrows($rs); for ($i = 0; $i < $ct; $i++) { $item = pg_fetch_array($rs, $i); $txt = "${item[1]}"; } // PostgreSQL Disconnect pg_close($cn); ?> 現在のデータベースのスキーマについてですが「na1」と「public」の2つが存在しています。 試しに、na1とpublicのテーブルをまったく同じにして SQLの部分を「select * from t_test」に変更すると「public」側のテーブルが覗けます。 しかし、SQLの部分を「select * from t_test.na1」に変更すると「スキーマが見つかりません」 というエラーが発生してしまいます。 スキーマがあるにもかかわらずこのエラーがでてしまうため原因が分からず困っております。 もしお分かりになる方いらっしゃいましたら、教えていただければと思います。 何卒よろしくお願いします。
- 日付をPHPに渡す
下記のようなPHPとHTMLがあります。 HTMLに日付を指定できるフォームを設置しており、ここに入力されたデータを、 PHPの日付の部分に渡せるようにしたいと思っております。 <?PHP //言語設定、内部エンコーディングを指定する mb_language("japanese"); mb_internal_encoding("UTF-8"); //ライブラリ include('googleanalytics.class.php'); //アカウント $ga = new GoogleAnalytics('ID','PW'); $ga->setProfile('ga:GAID'); //日付指定 $today1 = mktime(0, 0, 0, date("m"), date("d")-30, date("Y")); $today2 = mktime(0, 0, 0, date("m"), date("d")-30, date("Y")); $g1 = date("Y-m-d", $today1); $g2 = date("Y-m-d", $today2); $ga->setDateRange($g2,$g1); //読み込み $report = $ga->getReport( array('dimensions'=>urlencode('ga:keyword'), 'metrics'=>urlencode('ga:visits,ga:pageviews'), 'sort'=>'-ga:pageviews' ) ); //表示 echo "<html><head><meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>"; echo "</head><body>"; echo "キーワード:セッション数:ページビュー数<BR>- - - - - <BR>"; foreach( $report as $d => $m ){ echo $d; foreach( $m as $a => $b ){ echo " : ".$b; } echo "<BR>"; } echo "</body></html>"; ?> <html> <br> ■ 期間 <form action="gaapisample.php" method="post"><label>日付(type="date1"):<input type="date" name="date"></label> <br> <form action="gaapisample.php" method="post"><label>日付(type="date2"):<input type="date" name="date"></label> <input type="submit" value="期間設定"></form> </html>
- PHPでログインする方法
よく、ブログの引越しなどでIDとPWを入力するとプログラムがログインしていろいろやってくれる機能などがありますが、あのような機能はPHPで作ることは可能でしょうか? もし、作れるならどのように作るなど簡単なアドバイスも教えていただけると、胸が温まります。
- ベストアンサー
- PHP
- satisfied999
- 回答数3
- PHP time() 更新できない
PHP time() 更新できない time関数を使って、サイトのコントロールをしたいと考えております。 【やりたいこと】 設定年月日時分秒より前にアクセスがあった場合は、「準備中」の表示を出す。 設定を超えた場合は、「スタート画面」を表示する。 【開発環境】 OS:windows xp PHP5.3 【サンプルコード】 if(time() < mktime(13,10,0,5,11,2013)){ echo "準備中"; exit(); }else{ echo "受付スタートします。"; //以下、htmlコード記述 } 【現象】 (1)設定より前にアクセス・・・「準備中」 (2)一旦ブラウザを閉じる (3)設定より後にアクセス・・・「準備中」 試しに現在時刻と設定年月日時分秒をechoしてみると(1)(3)共に同じタイムスタンプでした。 echo "現在時刻 = ".time()."<br />"; echo "設定時刻 = ".mktime(13,10,0,5,11,2013)."<br />"; ブラウザの更新ボタンや、キーボードのF5を1,2回押してもタイムスタンプは変わらず、表示も「準備中」のままです。 但し、F5を連打すると更新されやがて「スタート画面」を表示することができます。 ちなにみ、コードはhtmlファイル内にphpを記述しています。(.htaccessにAddHandler x-httpd-php5.3 .php .phps .htmlを設定) クライアントのどこかでtime関数の値を保持しているのでしょうか。 時間がきたらきっちりと画面表示を切り替えしたいです。 お知恵を拝借できないでしょうか。
- ベストアンサー
- PHP
- jipang5054
- 回答数2
- phpの繰り返し処理
コンマで区切られた変数 $contents = "a1,a2,a3,b1,b2,b3,c1,…"; といったものがあって、それをテーブルにしたいんですけど、 量はどれだけあるかはわかりませんが、 3コづつでどんどん次の行へおくりたいんです。 ---------------- | a1 | a2 | a3 | ---------------- | b1 | b2 | b3 | ---------------- | c1 |… といった感じです。 どうしたらできますか? 教えてください。よろしくお願いします。
- ベストアンサー
- PHP
- noname#156265
- 回答数1
- php 多重ループでエラー
データベースからレコードの値を取得時に、 以下のエラーが発生します。 2度目のexecute()でなぜエラーが発生するのでしょうか? Fatal error: Call to a member function execute() on a non-object <? try { $dbh = new PDO("mysql" . ":host=localhost" . ";" . "dbname=" . "test", "user", "password"); if (!$dbh) { $info = $dbh->errorInfo(); exit($info[2]); } } catch (PDOException $e) { exit('データベースに接続できませんでした。' . $e->getMessage()); } $sql = "SELECT * FROM Master"; $result = $dbh->prepare($sql); $result->execute(); while ($rs = $result->fetch(PDO::FETCH_ASSOC)) { $sql = "SELECT * FROM MasteSub"; $sql = $sql . " Where ID = {$rs['ID']"; $result2 = $dbh->prepare($sql); $result2->execute(); //ここでエラー発生 if ($rs2 = $result2->fetch(PDO::FETCH_ASSOC)) { $Name = $rs["Name"]; } $rs2 = null; $result2 = null; } $rs = null; $result = null; 開発環境 OS:CentOS5 PHP:5.1.6 データベース:MYSQL
- ベストアンサー
- PHP
- Beginner3101
- 回答数4
- PHPでの重複チェック
htmlから$data1~$data17までの項目をPHPで取得し CSV出力、PDF表示、管理者へメール送信しております。 ※質問内容が4000文字以内なので、 PDF出力、全角、半角チェック等は削除しております。 このプログラムに重複チェックを追加したいと考えています。 $data16の希望アカウントの重複チェックを行なうには どのような方法があるのでしょうか? どなたか、ご教示頂けないでしょうか? 以上、宜しくお願いいたします。 -----ここからプログラムの始まりです----- <?php //#環境設定################################ $errflg = 0; $coment_length = 100; //最大コメント文字数 $ng_data = ""; //コメント禁止ワード(正規表現で記載可能) $file_name = "./data/test_data.csv"; //出力CSVファイル名 date_default_timezone_set('Asia/Tokyo'); $subject = "TEST"; //件名 $to = "aaa@aaa.com"; //管理人メールアドレス(宛先) mb_language("Japanese"); mb_internal_encoding ("SJIS"); //######################################### //HTML内容出力 //echo "<html>"; //echo "<head>"; //echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">"; //echo "<title>TEST</title>"; //echo "</head>"; //echo "<body>"; //echo "<CENTER><FONT size=\"+2\"><B>TEST</B></FONT></CENTER><BR>"; //############################################## // ■ 入力チェック //############################################## //############################################## // ■ 投稿内容格納 //############################################## if($_SERVER["REQUEST_METHOD"]=="POST"){ $data1 = $_POST['sen1']; $data2 = $_POST['sen2']; $data3 = $_POST['sen3']; $data4 = $_POST['sen4']; $data5 = $_POST['sen5']; $data6 = $_POST['sen6']; $data7 = $_POST['sen7']; $data8 = $_POST['sen8']; $data9 = $_POST['sen9']; $data10 = $_POST['sen10']; $data11 = $_POST['sen11']; $data12 = $_POST['sen12']; $data13 = $_POST['sen13']; $data14 = $_POST['sen14']; $data15 = $_POST['sen15']; $data16 = $_POST['sen16']; $data17 = $_POST['sen17']; }else{ echo "申請に失敗しました。"; $errflg = "1"; } //############################################## // ■ 投稿者の環境状況取得 //############################################## //(1)リンク元(投票ページ取得) if( $_SERVER["HTTP_REFERER"] ){ $link = $_SERVER["HTTP_REFERER"]; } else{ //リンク元が取得出来ない $link = ""; } //(2)投票IPアドレス $host = $_SERVER["REMOTE_ADDR"]; //(3)ブラウザ情報取得 $agent = $_SERVER["HTTP_USER_AGENT"]; //**************************** //############################################# // ■アンケートファイル出力処理 //############################################# if($errflg == 0){ //*評価情報**************************** $body .= "\"" . $data1 ."\"" .","; //名前(性) $body .= "\"" . $data2 ."\"" .","; //名前(名) $body .= "\"" . $data3 ."\"" .","; //名前(セイ) $body .= "\"" . $data4 ."\"" .","; //名前(メイ) $body .= "\"" . $data5 ."\"" .","; //性別 $body .= "\"" . $data6 ."\"" .","; //生年月日(年) $body .= "\"" . $data7 ."\"" .","; //生年月日(月) $body .= "\"" . $data8 ."\"" .","; //生年月日(日) $body .= "\"" . $data9 ."\"" .","; //〒1 $body .= "\"" . $data10 ."\"" .","; //〒2 $body .= "\"" . $data11 ."\"" .","; //都道府県 $body .= "\"" . $data12 ."\"" .","; //市町村 $body .= "\"" . $data13 ."\"" .","; //町名番地等 $body .= "\"" . $data14 ."\"" .","; //電話番号 $body .= "\"" . $data15 ."\"" .","; //メールアドレス $body .= "\"" . $data16 ."\"" .","; //希望アカウント $body .= "\"" . $data17 ."\"" .","; //所属 //*投稿者情報**************************** $body .= date("Y/m/d") ."\"" ."\n"; //日付 //*ファイル出力**************************** $fhn = fopen($file_name,"a"); if ($fhn){ if (flock($fhn, LOCK_EX)){ if (fwrite($fhn, $body) === FALSE){ print("申請に失敗しました。"); }else{ //print("申請が完了いたしました。<br />"); require('/php/includes/fpdf/mbfpdf.php'); $pdf->Output(); } flock($fhn, LOCK_UN); if(mb_send_mail($to,$subject,$body)){ //echo "メール送信成功しました。"; }else{ //echo "メール送信失敗しました。"; } }else{ print("申請に失敗しました。"); } } } //echo "</body>"; //echo "</html>"; ?>
- phpでのメール送信
$mail = new Qdmail(); $mail->lineFeed("\n"); $mail->text($msg); $mail->from( 'xxx@xxx.co.jp' , 'テスト' ); $mail->to( array($mail_address , $name) ); $mail->subject( 'パスワード再発行のお知らせ' ); $mail->send(); 上記コードで、メール送信処理を実装したのですが、 あるメールアドレスへ届いて、あるメールアドレスには届かないという現象が発生しています。 届かない方はプロバイダの迷惑メールとして処理されたのかと思い調べてみたのですが 迷惑メールとして処理された形跡は全くありませんでした。 この場合、他に考えられる原因はなんでしょうか? よろしくお願いします。
- ベストアンサー
- PHP
- like-linux
- 回答数1
- PHP ZendFrameworkについて
PHP ZendFrameworkについて質問がございます。 ブログのようなシステムを作成しており、 フロントコントローラでのルータ設定で困っております。 サイトのURL構成を以下のように考えております。 ■ユーザー画面 http://domain/blogId/controller/action/* ■ブログ所有者の管理画面 http://domain/blogId/module/controller/action/* ※blogIDには、任意の半角英数字が入ります。 ※管理画面の module には "admin" が入る予定です。 ■記述したソース ----------------------------------------------------- // フロントコントローラのインスタンス $front = Zend_Controller_Front::getInstance(); // モジュールディレクトリの設定 $front->addModuleDirectory(_SYS_PATH_.'app/modules'); // ルータを取得 $router = $front->getRouter(); // ルートを設定する $newRoute = array('blogId' => 'none', 'module' => 'default', 'controller' => 'index', 'action' => 'index' ); $route = new Zend_Controller_Router_Route(':blogId/:module/:controller/:action/*', $newRoute); $router->addRoute('default', $route); // ディスパッチする $front->dispatch(); ----------------------------------------------------- 上記のソースで、 ブログ所有者の管理画面はいいのですが、 ユーザー画面で、 http://domain/blogId/controller/action/* とアクセスすると controller が module になってしまいます。 http://domain/blogId/controller/action/* と、moduleを省いた場合は default のモジュールを呼び出せるようにしたいのです。 さらに モジュール を追加するとして、そのモジュールにアクセスする場合は、 http://domain/module/controller/action/* と blogId をはずしてアクセスしたいのですが、可能でしょうか? 初歩的なことかと思いますが、ご教授のほど宜しくお願い致します。
- 締切済み
- PHP
- kensuke734
- 回答数1
- phpで困ってます。
phpでNotice: Undefined offset:のエラーが出て困っています。ご指導よろしくお願いします。 まず、name.txtの内容からチェックボックスを生成し、そのチェックボックスにチェックを入れて送信します。 <?php $name_file = "name.txt"; $name_log = array(); // ログファイルの読み込み if (file_exists($name_file)) { $name_log = file( $name_file ); } // ログの内容をHTMLに変換する $html = ""; $count = 0; //チェックボックスの生成 foreach ($name_log as $line) { $checkbox = '<label><input class="che" type="checkbox" name="n['.$count.']" value="'.$line.'"><img src="'.$line.'"></label></br>'; $html .= $checkbox; $count ++; } $html .= '<input type="hidden" name="count" value="'.$count.'">'; ?> 後略 次に受け取る側ですが,チェックが入っている情報をもとにimgタグを生成しようとしています。 <?php $html = ""; $max = $_POST['count']; //n[ ]に送信されきた内容を代入 for ($i = 0; $i < $max; $i++) { if($_POST['n'][$i] != ''){ $img_src = htmlspecialchars($_POST['n'][$i], ENT_QUOTES); $img = '<img src="'.$img_src.'">'; $html .= $img; } } $fhn = fopen("show_html.txt","w"); fwrite($fhn,$html); fclose($fhn); ?> 後略 if($_POST['n'][$i] != '')の部分で Notice: Undefined offset:0 .............. Notice: Undefined offset:1 .............. Notice: Undefined offset:2 .............. . . . . のエラーが出ます。
- phpでのパスワードチェック
phpでパスワードの正規表現を書いていますがどうも動いてくれません。 正規表現のコードはサンプルで拾ったものなのですがそれをphpに組み込んでも動きません。 どのように対処したら良いのでしょうか?
- Mysql php 格納できない
mysqlのデータにデータを格納したいのですができません。 エラー文も出ません。 phpのpostで受け渡しデータベースに格納する流れです。 データの受け渡しは確認済み。 下記はソースです。 こちらも var_dump($data)で確認済み すべてにしっかりデータは入っています。 $sql='INSERT INTO zyoho(memberid,city.town,brand,syasyu,syasyumei,nenshiki,kyori, zyotai,sonota,gazou1,gazou2,gazou3,gazou4,gazou5,day)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)'; $stmt=$dbh->prepare($sql); $data[]=$memberid; $data[]=$city; $data[]=$town; $data[]=$brand; $data[]=$syasyu; $data[]=$syasyumei; $data[]=$nenshiki; $data[]=$kyori; $data[]=$zyotai; $data[]=$sonota; $data[]=$gazou1; $data[]=$gazou2; $data[]=$gazou3; $data[]=$gazou4; $data[]=$gazou5; $data[]=date('Y-m-d H:i:s'); $stmt->execute($data); mysql テーブル名 zyoho id int primary key auto_increment memberid int city varchar(20) town varchar(20) brand varchar(50) syasyu varchar(50) syasyumei varchar(100) nenshiki varchar(20) kyori varchar(20) zyotai text sonota text gazou1 varchar(50) gazou2 varchar(50) gazou3 varchar(50) gazou4 varchar(50),gazou5 varchar(50) day datetime 解決方法ご教授いただければと思います。
- ベストアンサー
- MySQL
- a7a7a77a7a74
- 回答数1
- PHP HTMLメールの送信
下記のスクリプトにおいて、$message のHTML文を 送信先のメーラーに送信すると、HTML文がそのまま書かれている状態で、 メーラーの受信メールのなかで、コンテンツが表示されません。 どうすれば、メーラーの中で、HTMLのコンテンツそのものを 表示できるのでしょうか。 ご指導よろしくお願い致します。 「html_mail_test.php」 <?php // 新規ユーザーにメール送信 $to = "~@nifty.com"; // 送信先メールアドレス(新規ユーザー宛て) $subject = "HTMLメールテスト"; // 題名 $from = "~@co.jp"; $password = rand(1, 99999999); // 本文(個人情報+アンケート内容) $message = " <!doctype html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-2022-jp\"> <style type=\"text/css\"> .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg .tg-yw4l{vertical-align:top} </style> </head> <body> <table class=\"tg\"> <tr> <th class=\"tg-yw4l\"></th> </tr> <tr><td><img src=\"http://5247423.raindrop.jp/html_mail/image/.png\"></td></tr> </table> </body> </html> "; $to = mb_convert_encoding($to, "UTF-8", "auto"); // $toは、自動的にエンコードされない。 $subject = mb_convert_encoding($subject, "UTF-8", "auto"); $message = mb_convert_encoding($message, "UTF-8", "auto"); // EUCにエンコード mb_send_mail($to, $subject, $message, $from); // メール送信 ?>
- ベストアンサー
- PHP
- beterugius
- 回答数2
- PHP PDO execute のsql
$sql = "select count(*) as ..........."; $PDOStatement = $pdo->prepare($sql); $PDOStatement ->bindValue(':id', $dat, PDO::PARAM_INT); $PDOStatement -> execute(); のような場合に、実際に問い合わせが行われたSQLはどうやって取得できますか?
- ベストアンサー
- PHP
- muuming2001
- 回答数1
- PHP name 動的 value 取得
失礼します現在動的に生成されたテーブルにチェックボックスに✔した際に valueをPHPで受け取りたいです 例ですが 現在 $set_array[0]に array(4) { [0]=> string "hoge" [1]=> string "piyo" [2]=> string "hogehoge" [3]=> string "test" } という配列が[1],[2]と他にあるとして、 iをfor文で回して <td><input name="hobby[]" type="checkbox" value="<?php $set_array[i]?>"></td> とインプットタグを作り 上記ような形で受け取れると思ったのですがうまくいきません汗 ご教授いただければ幸いです。 宜しくお願い致します。
- php 産婦人科アプリケーション
これからphpの産婦人科のWebアプリケーションのプロジェクトを請け負う事になります。 入社して2,3日なのですがphpの仕事を扱うに当たって勉強をしているのですが php独特の癖というかCやjavaと違うphp言語のポイント(foreach文?みたいな) があれば教えて頂きたいです。(Webアプリケーションはプログラムを一から組む事になると思います。) なければプログラムを一から組む上で苦労したところなどを教えて頂ければと思います。 バカな質問かも知れませんが答えて頂けたらと思います。
- ベストアンサー
- SE・インフラ・Webエンジニア
- shin11shin
- 回答数1
- PHP+MYSQLについて
PHP+MYSQLについて 速効!図解プログラミング PHP+MYSQLと言うの本の中で紹介されています。PHPとMysqlで作る会員管理システムについてこの本を元にして構成を変更したく考えています。下記の内容を実現するにはどの様な変更するとうまくいくのでしょうか? 画面遷移を トップページ ⇒ 登録画面(全項目登録) ⇒ 確認画面 メール送信完了画面 メールhttp://~ ⇒ 登録完了 ⇒ ログイン を トップページ ⇒ 登録画面(メールのみの登録) ⇒ 確認画面 メール送信完了画面 メールhttp://~ ⇒ 本登録(全項目登録) ⇒ 登録録完了 ⇒ ログイン この本をお持ちの方、勉強された方どの様な作りにしたらよいと思いますか? ちなみにこの本のサンプルはhttp://book.mycom.co.jp/suport のSection72-81です。 皆様なにとぞお力をお貸しいただけます様によろしくお願いいたします。
- php MySQL データ登録 方法
以前もご質問させていただいたのですが、調べてもわからず困り果てています。 PHPとMySQLは初心者です。 PHPのバージョンはPHP 5.2.12 MySQLのバージョンは 5.1 サーバーはさくらインターネットを使用しています。 コードは下記のとおりになります。 form.php <html> <body> <form action="complete.php" method="POST"> <input type="text" name="id"> <input type="text" name="password"> <input type="text" name="first_name"> <input type="text" name="last_name"> <input type="text" name="first_kana"> <input type="text" name="last_kana"> <?php print '<select name="b_year">'."\n"; $start = date('Y') -40; $end = date('Y') -16; for ($i = $start; $i <= $end; $i++) { $selected = ""; $selected = ($_POST["b_year"] == sprintf('%04d',$i)) ? "selected":""; print '<option value="' . sprintf('%04d',$i) . '" '.$selected.'>' . sprintf("%04d",$i) . '</option>' . "\n"; } print '</select> 年' . "\n"; (文字数のためb_monthとb_dayを省略) ?> <input type="text" name="number"> <input type="text" name="height"> <input type="text" name="weight"> <input type="submit" name="regist" value="登録"> <input type="reset" name="reset" value="リセット"> </form> </body> </html> complete.php <?php ・ ・ $id = mysql_real_escape_string($_POST['id']); $password = mysql_real_escape_string($_POST['password']); $first_name = mysql_real_escape_string($_POST['first_name']); $last_name = mysql_real_escape_string($_POST['last_name']); $first_kana = mysql_real_escape_string($_POST['first_kana']); $last_kana = mysql_real_escape_string($_POST['last_kana']); $year = mysql_real_escape_string($_POST['b_year']); $month = mysql_real_escape_string($_POST['b_month']); $day = mysql_real_escape_string($_POST['b_day']); $number = mysql_real_escape_string($_POST['number']); $height = mysql_real_escape_string($_POST['height']); $weight = mysql_real_escape_string($_POST['weight']); ・ ・ $query_reg = sprintf("INSERT INTO `member` (`id`,`password`,`first_name`,`last_name`,`first_kana`,`last_kana`,`b_year`,`b_month`,`b_day`,`number`,`height`,`weight`) VALUES('$id',$password,'$first_name','$last_name','$first_kana','$last_kana',$year,$month,$day,,$number,$height,$weight"); $result_reg = mysql_query($query_reg, $link) or die(mysql_error()); if ($result_reg) { $msg = '登録しました。'; } else { $msg = '登録に失敗しました。'; } ・ ・ ・ ?> <html><body><?php print $msg; ?></body></html> とフォームを入力してデータベースに登録をするという流れです。 ご質問ですが、フォームに項目を入力して登録するとデータベースに登録がされます。 しかし、数字のみ($number、$height、$weight)の場所を未入力にするとエラーが出力されます。 エラーは 「You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near」です。 MySQLは下記のように設定しています。 id varchar(20) None password varchar(255) None first_name varchar(8) NULL last_name varchar(8) NULL first_kana varchar(8) NULL last_kana varchar(8) NULL b_year int(4) NULL b_month int(2) NULL b_day int(2) NULL number varchar(2) NULL height varchar(3) NULL weight varchar(3) NULL 未入力でもエラーが表示されずデータベースに入力されたとこだけ登録されるようにするにはどうしたらよろしいのでしょうか? お分かりの方がいらっしゃいましたらご教授お願いいたします。
- こんにちは、PHP初心者です。
こんにちは、PHP初心者です。 Smartyを利用してWebサイトを構築中です。 Smarty.classの派生クラスを作成し、コンストラクタ内でDB接続オブジェクトをprivateプロパティ($_db)に設定しているのですが,query文のところでエラーSELECT * FROM books [nativecode=1046 ** No database selected]となります。ためしにコンストラクタ内でクエリを実行したところテーブルから値を取得できました。なぜコンストラクタ外に出るとエラーになるのかわかりません。どなたかご教示ください。どうぞよろしくお願いします。 下記ソースです。 =====派生クラス======================= <?php $user = "dbuser"; $pass = "dbpassword"; $name = "mobilephp"; $host = "localhost"; require_once("DB.php"); require_once("Smarty/libs/Smarty.class.php"); class MySmarty extends Smarty { private $_db; public function __construct() { $this->Smarty(); $this->template_dir="../templates"; $this->compile_dir="../templates_c"; $this->_db=DB::connect("mysql://$user:$pass@$host/$dbname"); } public function __destruct() { $this->_db->disconnect(); } public function get_db() {return $this->_db;} } ?> ======end===================================== ==========メインのPHP=================================== <?php require_once("../MySmarty.class.php"); $o_smarty=new MySmarty(); $db=$o_smarty->get_db(); $stt=$db->query("SELECT * FROM books");←ここでエラーになる $data=array(); while($row=$stt->fetchRow(DB_FETCHMODE_ASSOC)){ $data[]=array("isbn"=>$row['isbn'],"title"=>$row['title'], "publish"=>$row['publish'],"price"=>$row['price']); } $o_smarty->assign("data",$data); $o_smarty->display("structure.html"); ?>
- ベストアンサー
- PHP
- ichitarou2616
- 回答数3
- PHPのopendir関数って・・・。
<?php $dir = "/etc/php5/"; // 既知のディレクトリをオープンし、その内容を読み込みます。 if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { echo "filename: $file : filetype: " . filetype($dir . $file) . "\n"; } closedir($dh); } } ?> 上の例の出力は、たとえば以下のようになります。 filename: . : filetype: dir filename: .. : filetype: dir filename: apache : filetype: dir filename: cgi : filetype: dir filename: cli : filetype: dir とありますが、 filename: . : filetype: dir filename: .. : filetype: dir は何もフォルダになくても出ますよね? これは何ですか??
- ベストアンサー
- PHP
- love_draco
- 回答数2
