質問編集履歴

1 エラー文の追加

settyan

settyan score 48

2016/06/20 16:09  投稿

PHPとPostgreSQLを連携させたい。
###前提・実現したいこと
題名の通りです。
下記のコードで動かしているのですが、DBNULLが返ってきてしまいます。
DBの指定文なんですが
localhostではよく見るんですが、path指定のものはあまりみかけなくて...
今のサーバ周りを説明いたしますと...
DBサーバ:win8.1の上にpostgresを乗っけている。
APIサーバ:win8.1の上にApach2.4を立ててそこで稼動
今現在この2つのサーバーは同じPC上に乗っているんですが、将来的には分けるつもりなのでできればPATHを指定したいのですが、、、。
できないのであればlocalhostでもいいのですが、この場合localhostでいけるのでしょうか?
ご教授の程よろしくお願いします。
###該当のソースコード
```PHP
<?php
//Typeの設定
header("Content-Type:applicasion/json");
//iosファイルの取得
$iosfile = file_get_contents('php://input');
//入れ子の生成
$jsonArray = NULL;
//iosファイルのNULLチェック
if(!empty($iosfile)){
//データのデコード
   $jsonArray = json_decode($iosfile);
}else{ // 値が取れていない場合
       //リターンステータスの生成
   $resultArray=array("LoginState"=>"BOTHNULL","resultCode"=>"99");
   echo json_encode($resultArray);
   exit();//-------------------------------------------------------------------
}
//中身のどちらかがNULLの場合
if( empty($jsonArray->loginID) || empty($jsonArray->password)){
   //リターンステータスの生成
   $resultArray=array("LoginState"=>"ONCENULL","resultCode"=>"99");
   echo json_encode($resultArray);
   exit();//-------------------------------------------------------------------
}
//DB接続設定
$db = 'pgsql:dbname=EMPLOYEEMASTER host=jdbc:postgresql://255.255.255.255. port=9999';
try{
   //接続
   $link = new PDO($db,'USER','PASS');
   $link = setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
}catch(PDOException $error){
   //リターンステータスの生成
   print_r($error);
   $resultArray=array("LoginState"=>"DBNULL","resultCode"=>"99");
   echo json_encode($resultArray);
   exit();//-------------------------------------------------------------------
}
//sql生成
$sql = 'SELECT * FROM login WHERE loginid = ? AND pass = ?';
//実行準備をして、文を返す
$stmt = $link->prepare($sql);
//値の設定(?に入る値)
$value = array($jsonArray['loginID'],$jsonArray['password']);
//sql実行
$flag = $stmt->execute($value);
//実行したsqlを作成
$mDO = outputSQL($sql,$value);
//実行判断
if(!$flag){
   //リターンステータスの生成
   $resultArray=array("LoginState"=>"NG","resultCode"=>"99");
       echo json_encode($resultArray);
   exit();//-------------------------------------------------------------------
}
$result = $stmt -> fetch(PDO::FETCH_ASSOC);
   $resultArray=array("LoginState"=>"OK","resultCode"=>"99");
   echo json_encode($resultArray);
exit();//-------------------------------------------------------------------
?>
```
###エラーコード  
エラーコードを表示させた結果次の様になりました。  
PDOException Object  
(  
   [message:protected] => could not find driver  
   [string:Exception:private] =>  
   [code:protected] => 0  
   [file:protected] =>  
   [line:protected] => 46  
   [trace:Exception:private] => Array  
       (  
           [0] => Array  
               (  
                   [file] =>  
                   [line] => 46  
                   [function] => __construct  
                   [class] => PDO  
                   [type] => ->  
                   [args] => Array  
                       (  
                           [0] => pgsql:dbname=EMPLOYEEMASTER host=jdbc:postgresql://255.255.255.255 port=9999  
                           [1] => USER  
                           [2] => PASS  
                       )  
 
               )  
 
       )  
 
   [previous:Exception:private] =>  
   [errorInfo] =>  
)  
 
###試したこと
pathの中身を色々と替えてみたりしましたがだめでした。
  • PHP

    37391 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • PostgreSQL

    2516 questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Apache

    3076 questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • Windows 8

    151 questions

    Microsoft Windows 7の後続であり、タッチベースの端末やタブレット機種に向けた新しいインターフェイスを採用しています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る