検索結果

DB

全10000件中1361~1380件表示
  • 全てのカテゴリ
  • 全ての質問
  • classの使い方について

    とある書籍にて require_once "MDB2.php"; require_once "Smarty.class.php"; class BBS extends Smarty{  private $_db;  public function __construct(){   $this->Smarty();   $this->template_dir = "{$dir}/themes";   $this->compile_dir = "{$dir}/templates_c";   $this->config_dir = "{$dir}/config";   $this->config_load("app.conf",basename($_SERVER["SCRIPT_NAME"],".php"));   $this->security=TRUE;   $this->secure_dir=array("{$dir}/image");   $this->_db=MDB2::connect($this->get_config_vars("db_string"));  }  public function __destruct(){   if(!PEAR::isError($this->_db)) $this->_db->disconnect();  }  public function get_db(){ return $this->_db; } } $Bbs = new BBS(); $db = $Bbs->get_db(); $db->setCharset('ujis'); と、あるのですがサーバーがPHP4の為、それに適用させたいのですがどのようにすればいいのでしょうか。ローカルサーバーはPHP5なので問題ないのですが。 class BBS extends Smarty{  var $_db;  function BBS(){   $this->Smarty();   $this->template_dir = "{$dir}/themes";    ~省略~  }  function shutdown(){   if(!PEAR::isError($this->_db)) $this->_db->disconnect();  }  register_shutdown_function("shutdown");  function get_db(){ return $this->_db; } } 上記で試してみたのですが Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in D:\aki\public_html\1\class\smarty.php on line 33 とエラーが出てしまいデストラクタがうまくできない状態です。 PHP4のクラスについて調べてみたが応用できそうなのが見つからなくて・・・ ご教授を願えたらと思います。

    • 締切済み
    • PHP
    • wish46
    • 回答数1
  • テーブルのレコード数を取得したいのですが、返り値が1になってしまいます。

    最近MySQLやPHPを触り始めたものです。マニュアルを参考に、テーブルのレコード数を取得しようとしてみたのですが、返り値が1になってしまいます。なぜこのような結果になるのでしょうか? http://jp.php.net/manual/ja/function.mysql-num-rows.php : : $db = mysql_connect($db_host,$db_user,$db_password); mysql_select_db($db_name,$db); $count = mysql_query("select count(*) from $db_table", $db); $num_rows = mysql_num_rows($count); echo "<p>{$num_rows}</p>"; どこに問題があるのかわかりません……。初歩的なミスをしているのだと思うのですが、数時間このままの状態で困っています。

    • ベストアンサー
    • PHP
  • どうやって作ればいいんですか?

    どうやって作ればいいんですか? サーバーでデータベースを作成します。      <PostgreSQLの場合>   $ createdb DB名   <MySQLの場合>   # mysqladmin create DB名   # mysql DB名   mysql> ALTER DATABASE DB名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 6. サーバーでデータベースユーザーを作成します。     <PostgreSQLの場合>   $ createuser DB接続ユーザー名    ⇒質問に対して「y」を入力してスーパーユーザー権限を与えてください。   $ createuser daemon    ⇒質問に対して全て「n」を入力してください。   $ createuser mailnull    ⇒質問に対して全て「n」を入力してください。   <MySQLの場合>   # mysql DB名   mysql> GRANT ALL PRIVILEGES ON *.* TO DB接続ユーザー名@DBホスト名 IDENTIFIED BY 'DB接続ユーザーパスワード' WITH GRANT OPTION;

  • PostgreSQLからODBCでSQLServe

    SQLServerにテーブルがあります。 それをPostgreSQLからODBCで参照したいです。 ◆SQLServer(設定済) OS : Windows10 Pro DBMS : SQLServer 2022 Exp コンピュータ名 : SV01\DB01 DBユーザ名 : suser1 DBパスワード : suser1psw DB名 : SQLSVDB1 テーブル名 : sqlsvtb1 データソース名 : DS01 ◆postgreSQL(設定中) OS : AlmaLinux release 9.4 DBMS : psql (PostgreSQL) 13.16 コンピュータ名 : comp01 DBユーザ名 : puser1 DBパスワード : puser1psw DB名 : psqldb1 ■やる事 AlmaLinuxにODBC Driver for SQL Serverをインストール AlmaLinuxのODBCを設定 AlmaLinuxにODBC_FDWをインストール PostgreSQL上でCREATE EXTENSION odbc_fdw; ■わからない事 ODBC Driver for SQL Serverのデータソースの記述の仕方がわからない 下記の設定をどこにどんな風に書けばいいのか? コンピュータ名 : SV01\DB01 DBユーザ名 : suser1 DBパスワード : suser1psw DB名 : SQLSVDB1 データソース名 : DS01 ODBC_FDWのインストール方法

    • noname#266815
    • 回答数1
  • postgres に接続できない

    PHP4とpostgrs8.0を利用しています。OSはWINDOWS2000です。 $DB_SERVER="localhost"; $Port = "5432"; $DB_NAME="test"; $DB_UID="postgres"; $DB_PASS="abc"; define("DB_CONECT","host=$DB_SERVER port=$Port dbname=$DB_NAME user=$DB_UID password=\"$DB_PASS\""); という設定で pg_connect(DB_CONECT) の接続でエラーが発生します。 Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: password authentication failed for user "postgres" in c:\*****.php on line 12 なぜでしょうか? pg_hba.confの設定で host all all 127.0.0.1/32 md5 を host all all 127.0.0.1/32 trust に変更すると接続できるのですが。 それは問題ないのでしょうか? またレンタルサーバーのpostgresを利用する場合、 その設定も個人で変更できるのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 共有ストレージについて

      |      |  DBサーバー1 - DBサーバー2   |      |  共有ストレージ(SAN) DB初心者のためDBサーバーにMySQLをインストールするだめでDBサーバーを構成できると思っているのですが、 上記のようなサーバー構成でDBサーバーと共有ストレージの役割はどのような役割をしているのでしょうか。共有ストレージという物がよくわかりません。教えてもらえませんでしょうか。

    • ベストアンサー
    • MySQL
    • basi999
    • 回答数2
  • プリペアードステートメントへの変更

    PHP、MySQL初級者です。 ある商品を検索するサイトを運営していますが、SQLインジェクション対策がなされておらず、mysql_queryで書いていたものを、プリペアドステートメントに初挑戦しています。 元々作ったプログラムを、ネットの情報や本を参考に修正していますが、検索をすると画面が真っ白になってしまう現象から2日間抜け出せずにいます。 どなたかご教授いただけますでしょうか。PHPのバージョンは5.2、Windows環境です。 ちなみに、$display_fromはページネーションに関係するものです。 また、//でコメントアウトしている箇所は一旦PEAR::DBをつかうやりかたに修正したなごりです。 また、rs2のところは検索結果のヒット数を表示させるためにわざわざ全件を取得しています。(このやり方自体スマートではない感じがしていますが。。) /*POSTでkeywordを取得*/ if($_POST['keyword']!=""){ $keyword=$_POST['keyword']; } elseif($_GET['pageID']!=""){ $keyword=$_SESSION['keyword']; } else{ } //ログイン情報をインクルードする include('db_login.php'); //PEAR DBの機能が含まれるDB.phpもインクルードする require_once("DB.php"); //接続する $connection = DB::connect("mysql://$db_username:$db_password@$db_host/$db_database"); if(DB::isError($connection)){ die("Could not connect to the database: <br />".DB::errorMessage($connection)); } //$db = mysql_connect("localhost", "root", "root")or die ('DB Connection Error= '. mysql_error()); //mysql_select_db("book_db", $db)or die ('DB Connection Error= '.mysql_error()); //$rs = mysql_query("SET character set UTF8", $db); //$rs2 = mysql_query("SET character set UTF8", $db); /*keywordが空白だった場合*/ if($keyword==""){ $query="SET character set UTF8"; $rs=$connection->query($query); $query="select * from book_card order by point desc limit $display_from, 50"; $rs=$connection->query($query); if(DB::isError($rs)){ die("Could not query the database:<br />$query ".DB::errorMessage($rs)); } $query2="SET character set UTF8"; $rs2=$connection->query($query2); $query2="select * from book_card"; $rs2=$connection->query($query2); if(DB::isError($rs2)){ die("Could not query the database:<br />$query2 ".DB::errorMessage($rs2)); } /*もともとのコード $rs=mysql_query("select * from book_card order by point desc limit $display_from, 50", $db); $rs2=mysql_query("select * from book_card", $db); */ } /*keywordに何か入っていた場合*/ else{ $query="SET character set UTF8"; $rs=$connection->query($query); //$query="select * from book_card where Name like '%$keyword%' order by point desc limit $display_from, 50"; //$rs=$connection->query($query); $query = "select * from book_card where Name like ? order by point desc limit ?, 50"; $rs = $connection->prepare($query); $data = array("%$keyword%", $display_from); $connection->execute($rs, $data); $query2="SET character set UTF8"; $rs2=$connection->query($query2); //$query2="select * from book_card where Name like '%$keyword%'"; //$rs2=$connection->query($query2); $query2 = "select * from book_card where Name like ?"; $rs2 = $connection->prepare($query2); $data2 = "%$keyword%"; $connection->execute($rs2, $data2); /*もともとのコード $rs=mysql_query("select * from book_card where Name like '%$keyword%' order by point desc limit $display_from, 50", $db); rs2=mysql_query("select * from book_card where Name like '%$keyword%'", $db); */ } 分かりにくい質問ですみませんが、どなたかお分かりの方ご教授いただけますでしょうか。 何卒宜しくお願い致します。

    • ベストアンサー
    • PHP
    • buttero
    • 回答数1
  • MySQL 文字化けについて(PHP)

    いつもお世話になっております。 PHPを使用してMySQLからデータを出し入れする際に文字化けが発生し原因がわからず、大変困っております。 MySQL 4.1.18(クライアント 4.1.21) MySQL文字セット UTF-8 Unicode (utf8) 様々なHPを検索して、下記のような一文を入れれば大丈夫と思ったのですが、それでも文字化けは改善されませんでした。 mysql_query("SET NAMES ujis"); 上記文はmysql_connectの直後に記述しております。 INSERT文、SELECT文どちらに不備があるのかわかりません。 ご教授お願い致します。 記述プログラム:(INSERT文) /********************************* * MySQL接続 ********************************/ // DB Connect $db = db_connect(); // DB Select select_db($db); // Set Names mysql_query("SET NAMES ujis"); /********************************* * INSERT文 ********************************/ $sql = "insert into T_YOYAKU values ('1','A','1','あいうえお')"; mysql_query($sql) 省略・・・ 記述プログラム:(SELECT文) /********************************* * MySQL接続 ********************************/ // DB Connect $db = db_connect(); // DB Select select_db($db); // Set Names mysql_query("SET NAMES ujis"); /********************************* * INSERT文 ********************************/ $sql = "select * from T_YOYAKU"; if ( $rs = mysql_query($sql) ) {

    • ベストアンサー
    • MySQL
  • 異なるデータベース間のリレーション

    phpmyadmin上の異なるデータベース間のテーブルでリレーションをかけたいのですが、うまくいきません。 new_linkフラグをtrueにすることで異なるデータベースを開くところまではできました。 アドバイスいただけないでしょうか。 ※DB1の中にtable1が、DB2の中にtable2がある //失敗する $con1 = mysql_connect("localhost",username,pass); mysql_select_db('DB1',$con1); $con2 = mysql_connect("localhost",username,pass,true); mysql_select_db('DB2',$con2); $sql = "select * from table1,table2 where table1.id = table2.id"; $result = mysql_query($sql) or die(mysql_error()); メッセージ⇒Table 'DB2.table1' doesn't exist //これは成功する $con1 = mysql_connect("localhost",username,pass); mysql_select_db('DB1',$con1); $con2 = mysql_connect("localhost",username,pass,true); mysql_select_db('DB2',$con2); $sql1 = "select * from table1"; $result1 = mysql_query($sql,$con1) or die(mysql_error()); $sql2 = "select * from table2"; $result2 = mysql_query($sql2,$con2) or die(mysql_error());

    • ベストアンサー
    • MySQL
    • 25taku
    • 回答数1
  • pearがエラーになる

    xamppにpearをインストールし、テキストを見ながらプログラムを作成し、実行しましたが、とエラーになります。 エラーの画面は以下のとおりです。 接続に成功しました Fatal error: Call to a member function getOne() on a non-object in C:\Program Files\xampp\htdocs\pje_bulletin\bbs.php on line 15 これに対するプログラムは以下のようなものです。 【bbs.php】 <?php require_once("Init_class.php"); $init_obj = new Init_class(); $in_disp_from = $_GET["in_disp_from"]; if(!$in_disp_from = intval($in_disp_from)){ $in_disp_from = 0; } $in_disp_to = $in_disp_from + 10; $sql = "SELECT (*) FROM bbs_table"; $count_result = $init_obj->db_object->getOne($sql); ←ここがline 15 $sql="SELECT message_sequence,contributor,mai_address,home_page_uri,subject,message,pass,_word,write_date FROM bbs_table ORDER BY message_sequence DESC LIMIT ".$in_disp_from.", "."10"; $db_result = $init_obj->db_object->query($sql); disp_html_header($init_obj->bbs_name); ?> 以下続く 【Init_class.php】 <?php /* PEAR::DBを読み込む */ require_once("../../php/PEAR/DB.php"); require_once("html_disp.php"); /* メンバ変数 */ class Init_class{ var $db_object; var $decode_key = "abcdefg"; var $db_user = "root"; var $db_pass = ""; var $db_host ="localhost"; var $db_name ="keroro"; var $bbs_name = "まっちゃんの掲示板"; } /* コンストラクタ → DBへの接続 */ function Init_class(){ $db_string = "mysql://".$this->db_user.":".$this->db_pass."@".$this->db_host."/".$this->db_name; $this->db_object = DB::connect($db_string); } print("接続に成功しました"); 以下続く ●pearを使わないで、PHPから直接MySQLにつながります。 ●SQLも簡単なヤツですし、コマンドラインからも問題ありませんでした。 ●一旦は接続できているようなのですが、次のrowをカウントに行くところでつまづいています。 PEARがちゃんとインストールされていないのかと思いましたが、 コマンドで「pear list」とやると、 DB    1.7.13    stable なっており、このほかに70個ぐらいのモジュールというかパッケージがセットされているようです。 それと、php.iniのinclude pathもちゃんと設定されています。 どなたかご指導下さい。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PDOで取得される値がすべて文字列になる

    xamppを標準インストールした環境にてPHPのPDOを利用したデータベース処理を試しているのですが、SELECTで取得した値がすべて文字列として返されます。 $db = new PDO("sqlite:sample.db"); $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); $rs = $db->query("select 1 as res"); $rs = $rs->fetch(); 結果: array(1) ( [res] => (string) 1 ) これに加え、やや強引なテストを行ってみたのですが、こちらも結果は同じく文字列となりました $db = new PDO("sqlite:sample.db"); $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); $rs = $db->prepare("select ? as res"); $rs->bindValue(1, 1, PDO::PARAM_INT); $rs->execute(); $rs = $rs->fetch(); この現象を回避するにはどのようにすればよいでしょうか。

    • ベストアンサー
    • PHP
  • SQLServer 2008のインスタンス間DBコピーの方法を探してい

    SQLServer 2008のインスタンス間DBコピーの方法を探しています。 インスタンス1とインスタンス2に同じテーブル構造(名称も同じ)のDBを用意しています。 インスタンス1のDB(以下、DB1)をインスタンス2のDB(以下、DB2)に コピーする方法を模索しています。 SQLServerのバージョンは2008で、Standardです。 できればDB1を止めることなく、DB2にコピーできるよう考えています。 ご存じの情報がありましたら、教えていただければと思います。 よろしくお願いします。

    • nobil
    • 回答数1
  • こんにちは、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
  • whileが上手く回らず困っています

    dbはoracleでphpを学んでいるのですが whileの中にwhileを入れると初めのwhileが回らなくなってしまい困っています。 具体的な内容を下に明記します。 よろしければ具体的な解決方法や構文など教えていただけないでしょうか? //select文の発行 $sql1 $db->Quary($sql1); while($db->FetchArray()){ $row1 = $db->mArray[row1]; $sql2 $db->Quary($sql2); while($db->FetchArray()){ $row2 = $db->mArray[row2]; $sql3 $db->Quary($sql3); while($db->FetchArray()){ $name = $db->mArray[name]; } } } 素人考えですがFetchArray()が上書きされて 1回目と二回目のwhileが回ってないように感じるのですが FetchArray()を何に置き換えてどう対応すれば上手く回るのかがわかりません。 よろしくお願いします。

    • mi0802
    • 回答数1
  • 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
    • idek
    • 回答数1
  • アクセスVBAです

    Sub test() Dim DB As Database Dim T As TableDef Dim myTable As String myTable = "Table1" Set DB = OpenDatabase(CurrentProject.FullName) For Each T In DB.TableDefs If T.Name = myTable Then DoCmd.DeleteObject acTable, myTable Exit For End If Next DB.Close Set DB = Nothing End Sub これを実行しようとすると Dim DB As Database の部分で コンパイルエラー プロジェクトではなく、ユーザ定義型を指定してください。 と言うエラーになります。 Dim DB As Objectにすればエラーにならずに進みますが 何が原因なのでしょうか?

  • ArduinoのSPIで10bit送信

    ArduinoのSPI機能を用いてHD44780互換ICを搭載したLCDを操作したいと考えています. LCDのデータシートには RS | RW | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 の形式でデータを送信するように記載がありました. ArduinoのSPI.transferは8bit送信固定ですが、10bitのみ送信することは可能でしょうか. それともSPI.transferを2回実行して,不要な6bitには0を書き込めば問題なくLCDを操作できるのでしょうか? お分かりになられる方がいらっしゃいましたら何卒ご教授宜しく御願い致します.

  • JOIN ON の SQLの実行が遅いです

    下記のようなSQLを実行しています。 SELECT db_1.*, CASE WHEN db_1.tihou = '北海道' THEN '1' WHEN db_1.tihou = '青森' THEN '2' WHEN db_1.tihou = '秋田' THEN '3' WHEN db_1.tihou = '山形' THEN '4' WHEN db_1.tihou = '岩手' THEN '5' WHEN db_1.tihou = '宮城' THEN '6' WHEN db_1.tihou = '福島' THEN '7' else '9' END AS kita, db_2.no, db_2.title, db_3.name, db_3.url from (db_1 left JOIN db_2 ON db_1.nonber = db_2.no) LEFT join db_3 on db_1.nonber = db_3.non WHERE db_1.nonber LIKE '1%' ORDER BY db_1.day DESC LIMIT 0,30 ※DB名、テーブル名は仮名としています db_1というメインのデータベースに合わせて db_2、db_3の情報をくっつけて結果を出したいと思っていますが実行に25秒強かかっています。 (PHPMyadmilで実行しました) db_1単体でしたら実行は速かったのですが db_2、db_3はどうしても付属させたく、また、db_1とは別のデータとしておきたいと考えています。 補足ではありますが、 「db_1.*」としているのは、db_1のデータ全て表示に使う為です。 良い方法をご存知の方いらっしゃいましたら、どうかお教え下さい。

    • ベストアンサー
    • MySQL
  • SELECT時のパフォーマンス

    ケースA:[SELECT文]-[DB2].[ビュー]-[DB1].[テーブル] ケースB:[SELECT文]-[DB2].[テーブル] [テーブル]はどちらも同じ内容です。 ケースAは[DB1]にある[テーブル]を[DB2]の[ビュー]を通して見てます。 ケースBは[DB2]に[DB1]の[テーブル]と同じ物をコピーしています。 同じSELECT結果を表示するSQLで ケースAとケースBでパフォーマンス的に差が出るのでしょうか? 私が思うのはケースAの場合別DBにあるテーブルをビューを使って 見てる事によって、DBやテーブルへのアクセス権限等の 確認処理でパフォーマンスが低下すると思うのですが 推定実行プランやプロファイラで見てもよく分かりませんでした。 些細な事でも構いませんので、教えてくださいませ。

    • noname#12530
    • 回答数3
  • xamppの設定

    phpを勉強している初心者です。 xamppをインストールしてphpを使っています。 (xamppの設定は初期状態です。) 現在item_list.phpという商品一覧のファイルを作成しています。 phpmyadminのciel(DB名)から商品をselect処理で持ってきています。 DB接続時の $conn = mysql_connect("localhost", "root", "");                    ↑      ↑ ↑ 上記の矢印の部分を変数$db_host,$db_user,$db_passwordに置き換えて$db_host,$db_user,$db_password はconf.phpで別ファイル管理したいと思っています。 item_list.phpのDB接続の前に「include ("conf.php");」を設定したところ下記のエラー表示が出てしまいました。 -------------------------------------------------------------------------- Warning: include(conf.php): failed to open stream: No such file or directory in C:\xampp\htdocs\ciel\item_list.php on line 6 Warning: include(): Failed opening 'conf.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\ciel\item_list.php on line 6 -------------------------------------------------------------------------- conf.phpは <? php $db_host = " localhost "; $db_user = " root "; $db_password = ""; $db_name = " ciel "; ?> このように設定しています。 おそらくinclude_pathの設定を変更しなくてはいけないと思うのですが、どこをどう変えたら良いのかわかりません。 どなたかご存知の方がいましたら教えてください。 よろしくお願いします。

    • 締切済み
    • PHP