質問編集履歴

3

selectの修正とエラー

2019/03/09 02:45

投稿

ariiiiiga
ariiiiiga

スコア66

test CHANGED
File without changes
test CHANGED
@@ -8,9 +8,9 @@
8
8
 
9
9
 
10
10
 
11
- 状"接続成功"とブラウザに表示されるだけで、HTML部分やエラーの表示はありせん
11
+ 在このエラーが出てい
12
12
 
13
-
13
+ SQLSTATE[HY000] [2002] Connection refused
14
14
 
15
15
  ### 該当のソースコード
16
16
 
@@ -20,47 +20,49 @@
20
20
 
21
21
  <?php
22
22
 
23
- $sql = null;
23
+ define('DB_USERNAME', 'myname');
24
24
 
25
- $res = null;
25
+ define('DB_PASSWORD', '*****');
26
26
 
27
- $dbh = null;
27
+ define('DSN', 'mysql:host=host; dbname=mydb; charset=utf8');
28
28
 
29
29
 
30
30
 
31
+ function db_connect(){
32
+
33
+ $dbh = new PDO(DSN, DB_USERNAME, DB_PASSWORD);
34
+
35
+ return $dbh;
36
+
37
+ }
38
+
31
39
  try {
32
40
 
33
- $dbh = new PDO("pgsql:host=host; dbname=mydb; charset=utf-8", 'user', 'pass');
34
-
35
- $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
36
-
37
-
38
-
39
- $sql = "SELECT * FROM data";
40
-
41
- $res = $dbh->query($sql);
41
+ $dbh = db_connect();
42
42
 
43
43
 
44
44
 
45
- foreach( $res as $value ) {
46
-
47
- echo "$value[name]<br>";
45
+ $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
48
-
49
- }
50
46
 
51
47
 
52
48
 
53
- } catch(PDOException $e) {
49
+ $statement = $dbh->query('SELECT * FROM data');
54
50
 
55
- echo $e->getMessage();
56
51
 
52
+
53
+ $statement = null;
54
+
57
- die();
55
+ $dbh = null;
56
+
57
+
58
+
59
+ } catch (PDOException $e) {
60
+
61
+ header('Content-Type: text/plain; charset=UTF-8', true, 500);
62
+
63
+ exit($e->getMessage());
58
64
 
59
65
  }
60
-
61
- $dbh = null;
62
-
63
-
64
66
 
65
67
  ```
66
68
 

2

selectでデータを表示させました

2019/03/09 02:45

投稿

ariiiiiga
ariiiiiga

スコア66

test CHANGED
File without changes
test CHANGED
@@ -20,41 +20,51 @@
20
20
 
21
21
  <?php
22
22
 
23
- $dsn = 'pgsql:dbname=mydb;host=mydb';
23
+ $sql = null;
24
24
 
25
- $user = 'mydb';
25
+ $res = null;
26
26
 
27
- $password = 'mydb';
27
+ $dbh = null;
28
28
 
29
29
 
30
30
 
31
31
  try {
32
32
 
33
- $dbh = new PDO($dsn, $user, $password);
33
+ $dbh = new PDO("pgsql:host=host; dbname=mydb; charset=utf-8", 'user', 'pass');
34
34
 
35
- $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
35
+ $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
36
36
 
37
- echo '接続成功';
37
+
38
38
 
39
- } catch (PDOException $e) {
39
+ $sql = "SELECT * FROM data";
40
40
 
41
+ $res = $dbh->query($sql);
42
+
43
+
44
+
45
+ foreach( $res as $value ) {
46
+
47
+ echo "$value[name]<br>";
48
+
49
+ }
50
+
51
+
52
+
53
+ } catch(PDOException $e) {
54
+
41
- echo 'Connection failed: ' . $e->getMessage();
55
+ echo $e->getMessage();
56
+
57
+ die();
42
58
 
43
59
  }
60
+
61
+ $dbh = null;
62
+
63
+
44
64
 
45
65
  ```
46
66
 
47
67
 
48
-
49
- ### 試したこと
50
-
51
-
52
-
53
- ・postgresql.confの中の#tcpip_socket = trueをtcpip_socket = trueに変更する←見つからない
54
-
55
- ・#port = 5432をport = 5432の#をとる 済
56
-
57
- ・#host all all 127.0.0.1 255.255.255.255 trustの#をとる
58
68
 
59
69
 
60
70
 

1

エラーモードと接続成功時のechoの表示

2019/03/08 11:42

投稿

ariiiiiga
ariiiiiga

スコア66

test CHANGED
@@ -1 +1 @@
1
- phpとpostgresql接続エラーの対処方法をたい
1
+ phpとpostgresqlをPDOで接続したい
test CHANGED
@@ -1,20 +1,14 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- PHP,Postgresqlをpdoで接続したいですがエラーがでます
3
+ PHP,Postgresqlをpdoで接続したいです。
4
4
 
5
- 記事が古せいかエラーを調べ同じようにやってみましたがエラーが変わらず解決できなかったので教えて頂けると助かります
5
+ PHPとMYSQLで作ってた検索機能のコドのDB接続部分下記のようにPostgreSQL用に変更しました。
6
+
7
+ MYSQLの時は正常に動作していました。
6
8
 
7
9
 
8
10
 
9
- ### 発生してい問題・エラーメッセージ
11
+ 現状"接続成功"とブラウザに表示されだけで、HTML部分やエラーの表示はありません。
10
-
11
-
12
-
13
- ```
14
-
15
- Connection failed: SQLSTATE[08006] [7] could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?
16
-
17
- ```
18
12
 
19
13
 
20
14
 
@@ -26,11 +20,11 @@
26
20
 
27
21
  <?php
28
22
 
29
- $dsn = 'pgsql:dbname=mydb;host=localhost';
23
+ $dsn = 'pgsql:dbname=mydb;host=mydb';
30
24
 
31
- $user = 'root';
25
+ $user = 'mydb';
32
26
 
33
- $password = '';
27
+ $password = 'mydb';
34
28
 
35
29
 
36
30
 
@@ -38,15 +32,15 @@
38
32
 
39
33
  $dbh = new PDO($dsn, $user, $password);
40
34
 
41
- $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
35
+ $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
36
+
37
+ echo '接続成功';
42
38
 
43
39
  } catch (PDOException $e) {
44
40
 
45
41
  echo 'Connection failed: ' . $e->getMessage();
46
42
 
47
43
  }
48
-
49
-
50
44
 
51
45
  ```
52
46