前提・実現したいこと
iOSアプリからデータベースの情報を取得したいのですが、
PHPエラーが発生し、取得できません。
(iOS側は、通信失敗となります。)
データベース周りにお詳しい方、ご教示頂きますと幸いです。
宜しくお願い致します。
iOS言語:Objective-C
SQL言語:PostgreSQL
発生しているPHPエラーメッセージ
※10行目は「 $db_name = "test";」です。
PHP Parse error: syntax error, unexpected '$db_name' (T_VARIABLE) in /Applications/MAMP/htdocs/get_json.php on line 10
DB情報
ホスト名:localhost DB名:test テーブル名:m_test カラム1:category カラム2:users ユーザー名="XXXXXX"; パスワード="XXXXXX";
該当コード(objective-C)
AFHTTPSessionManager* manager = [AFHTTPSessionManager manager]; NSDictionary* postparam = @{ @"table_name" : @"m_test"}; [manager POST:@"http://localhost:8888/get_json.php" //MAMP parameters:postparam progress:nil success:^(NSURLSessionTask* task, id responseObject) { //通信成功 NSLog(@"成功response: %@", responseObject); } failure:^(NSURLSessionTask* operation, NSError* error) { //通信失敗 NSLog(@"失敗Error: %@", error); }];
該当コード(get_json.php)
<?php //DatabaseClassを読み込み include_once "DatabaseClass.php"; //テーブル名が選択されているかどうか確認 if($_POST["table_name"] ) { //DB名設定 $db_name = "test"; $database = new Database($db_name); $table_name = $_POST["table_name"]; $sql = ("SELECT * FROM {$table_name}"); //クエリ送信 $query = pg_send_query($sql); $json= array(); if(strstr($table_name, 'm_test')){ while ($row = $database->jsonparse($query)) { $json[] = array( 'category'=> $row->category ,'users'=> $row->users ); } } //JSON形式で出力 header("Content-Type: application/json; charset=utf-8"); echo json_encode($json); //DBを閉じる $database->close(); }//if($_POST["table_name"]) ?>
該当コード(DatabaseClass.php)
<?php //内部文字コードを変更 mb_language("uni"); mb_internal_encoding("utf-8"); mb_http_input("auto"); mb_http_output("utf-8"); class Database{ var $dbServer; var $dbName; var $dbUser; var $dbPass; var $link; var $db; var $query; //DB接続 function __construct($db_name) { //DBの情報 $this->dbServer="localhost"; $this->dbName=$db_name; $this->dbUser="XXXXXX"; $this->dbPass="XXXXXX"; //ポスグレに接続 $this->link=pg_connect("host={$this->dbServer} dbname={$this->dbName} user={$this->dbUser} password={$this->dbPass}") or die(exit); //UTF-8の文字コードに変更 $this->query=pg_query($this->link,'SET NAMES utf8'); } //DBを閉じる public function close() { return pg_close($this->link); } //読み込むテーブルの選択 public function select($query) { $result=pg_query($query); $row=array(); $row=pg_fetch_assoc($result); return $row; } //指定したクエリの実行 public function query($query) { return pg_query($this->link,$query); } //JSON形式に変換用の出力 public function jsonparse($query) { $row = pg_fetch_object($query); return $row; } } ?>
補足情報(FW/ツールのバージョンなど)
phpバージョン:7.2.7
postgreSQLバージョン:10.5
回答1件
あなたの回答
tips
プレビュー