質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

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

Q&A

3回答

943閲覧

PHPでクエリの実行に失敗する

aiueoaiueoaiue

総合スコア94

PHP

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

0グッド

1クリップ

投稿2018/08/27 15:31

###実現したいこと
PHPでPDO接続を用いてMySQLのデータベースの値を取得したいと考えているのですが、処理が途中で止まってしまいます。該当ソースは以下なのですが、

PHP

1<?php 2try { 3 省略 4 $pdo = new PDO($dsn, $db['user'], $db['pass'], array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); 5} 6catch (PDOException $e){ 7 exit('データベース接続失敗。'.$e->getMessage()); 8} 9 10$mysql = "SELECT row FROM database WHERE dataname='".$dataname."'"; 11var_dump($pdo); 12$row = $pdo->query($mysql); 13var_dump($row); 14foreach($row as $row1){ 15} 16以下略

このPHPを実行するとブラウザに

object(PDO)#1 (0) { }

と表示されました。その1行下の$rowがどうなっているか確認したかったのですがブラウザには$pdoの値しか表示されませんでしたので処理が止まっているのかなと考えました。何故こうなってしまうのか、原因と解決策分かる方回答お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/08/27 23:35

これはdatabase というテーブルがあるということでしょうか。それともデータベース内にあるテーブル一覧を取得しようとしているということでしょうか。サンプルにしてももう少し分かりやすい表現にされた方が良いかと思います。
guest

回答3

0

元ソースを最大限パクると

SQL

1<?php 2try { 3 $pdo = new PDO($dsn, $db['user'], $db['pass']); 4 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 5 $mysql = "SELECT row FROM database WHERE dataname=?"; 6 $stmt = $pdo->prepare($mysql); 7 $stmt->execute([$dataname]); 8 $rows=$stmt->fetchAll(PDO::FETCH_ASSOC); 9}catch (PDOException $e){ 10 exit('データベース接続失敗。'.$e->getMessage()); 11} 12foreach($rows as $row){ 13 print_r($row); 14}

投稿2018/08/28 00:31

yambejp

総合スコア114747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

php

1$mysql = "SELECT row FROM database WHERE dataname='".$dataname."'"; 2$query = $pdo->query($mysql); 3$row = $query->fetch(); 4var_dump($row);

$rowのところは$queryとではないでしょうか?
その後fetch()fetchAll()すれば良いかと

投稿2018/08/27 23:55

taka2063

総合スコア307

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

$pdoの値しか出ないなら恐らくSQLでエラーが起きていると考えられます。
SQLの構文は間違ってなさそうなので$mysqlのSQLを直接実行したり、PHPでDBを扱う部分を全部tryブロックに移すと例外メッセージで原因が分かりそうです。

投稿2018/08/27 17:14

shiena

総合スコア1825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問