###前提・実現したいこと
題名の通りです。
下記のコードで動かしているのですが、DBNULLが返ってきてしまいます。
DBの指定文なんですが
localhostではよく見るんですが、path指定のものはあまりみかけなくて...
今のサーバ周りを説明いたしますと...
DBサーバ:win8.1の上にpostgresを乗っけている。
APIサーバ:win8.1の上にApach2.4を立ててそこで稼動
今現在この2つのサーバーは同じPC上に乗っているんですが、将来的には分けるつもりなのでできればPATHを指定したいのですが、、、。
できないのであればlocalhostでもいいのですが、この場合localhostでいけるのでしょうか?
ご教授の程よろしくお願いします。
###該当のソースコード
PHP
1<?php 2//Typeの設定 3header("Content-Type:applicasion/json"); 4//iosファイルの取得 5$iosfile = file_get_contents('php://input'); 6//入れ子の生成 7$jsonArray = NULL; 8//iosファイルのNULLチェック 9if(!empty($iosfile)){ 10 11//データのデコード 12 $jsonArray = json_decode($iosfile); 13}else{ // 値が取れていない場合 14 //リターンステータスの生成 15 $resultArray=array("LoginState"=>"BOTHNULL","resultCode"=>"99"); 16 echo json_encode($resultArray); 17 exit();//------------------------------------------------------------------- 18} 19 20//中身のどちらかがNULLの場合 21 22if( empty($jsonArray->loginID) || empty($jsonArray->password)){ 23 //リターンステータスの生成 24 $resultArray=array("LoginState"=>"ONCENULL","resultCode"=>"99"); 25 echo json_encode($resultArray); 26 exit();//------------------------------------------------------------------- 27 28} 29 30 31//DB接続設定 32$db = 'pgsql:dbname=EMPLOYEEMASTER host=jdbc:postgresql://255.255.255.255. port=9999'; 33try{ 34 //接続 35 $link = new PDO($db,'USER','PASS'); 36 $link = setAttribute(PDO::ATTR_EMULATE_PREPARES,false); 37}catch(PDOException $error){ 38 //リターンステータスの生成 39 print_r($error); 40 $resultArray=array("LoginState"=>"DBNULL","resultCode"=>"99"); 41 echo json_encode($resultArray); 42 exit();//------------------------------------------------------------------- 43} 44 45//sql生成 46$sql = 'SELECT * FROM login WHERE loginid = ? AND pass = ?'; 47 48 49//実行準備をして、文を返す 50$stmt = $link->prepare($sql); 51//値の設定(?に入る値) 52$value = array($jsonArray['loginID'],$jsonArray['password']); 53//sql実行 54$flag = $stmt->execute($value); 55//実行したsqlを作成 56$mDO = outputSQL($sql,$value); 57 58//実行判断 59if(!$flag){ 60 //リターンステータスの生成 61 $resultArray=array("LoginState"=>"NG","resultCode"=>"99"); 62 echo json_encode($resultArray); 63 exit();//------------------------------------------------------------------- 64} 65 66$result = $stmt -> fetch(PDO::FETCH_ASSOC); 67 $resultArray=array("LoginState"=>"OK","resultCode"=>"99"); 68 echo json_encode($resultArray); 69exit();//------------------------------------------------------------------- 70 71?>
###エラーコード
エラーコードを表示させた結果次の様になりました。
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の中身を色々と替えてみたりしましたがだめでした。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/20 07:33
2016/06/20 07:59