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

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

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

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

Q&A

解決済

4回答

7762閲覧

php MySQL PDO query()でクエリを実行して、1行目のデータを取得したい

tetsu123

総合スコア26

PHP

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

0グッド

1クリップ

投稿2016/12/25 14:14

現在mysql_connectからPDO記述に切り替え作業をしているのですが、
1点つまづいてしまったことがあるので質問させて下さい。
DBへの接続は出来ているようなのですが、
その後Select文を投げてDBを参照する箇所でつまづいてしまっています。

■行いたいこと:
・Select文を実行して指定したフィールドの1行目のデータを取得したい
・投げたselect文の結果が0件であった場合は、検知してechoで知らせたい

■現在出来ていること:
DBへの接続
$objPDO = new PDO('mysql:host=localhost;dbname=dbaaaa', $user, $pass);

■試してみたこと:
$strGetMail = "SELECT * FROM TableA WHERE Mail = aaaa ";
$objDBResult = $objPDO -> query($strGetMail);

$strMail = $objDBResult->fetch_assoc()["Mail"];
echo $strMail;

宜しくお願いします。

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

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

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

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

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

guest

回答4

0

PHP

1<?php 2ini_set("display_errors", true); 3error_reporting(E_ALL); 4try { 5 $pdo = new PDO( 6 "mysql:host=localhost;dbname=dbaaaa;charset=utf8", 7 "root", 8 "password", 9 [ 10 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION 11 ] 12 ); 13 $sql = "SELECT * FROM `dbaaaa` WHERE `Mail` = :aaaa"; 14 $stmt = $pdo->prepare($sql); 15 $stmt->bindValue(":aaaa", "aaaa", PDO::PARAM_STR); 16 $stmt->execute(); 17 $rows = $stmt->fetch(PDO::FETCH_ASSOC); 18 if (!empty($rows)) { 19 print_r($rows); 20 } else { 21 echo "該当項目なし"; 22 } 23} catch (PDOException $exception) { 24 echo $exception->getMessage(); 25 exit(); 26}

投稿2016/12/25 16:46

s8_chu

総合スコア14731

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

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

0

こんばんは。RDBの種類が不明ですが、 TableA テーブルの Mail 列の型はなんですか?
おそらく文字列型で、その場合は

PHP

1$strGetMail = "SELECT * FROM TableA WHERE Mail = 'aaaa' ";

ですね。

投稿2016/12/25 14:29

iwasiman

総合スコア14

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

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

0

ベストアンサー

最初の1件のみを読み込みは、fetchを1回でも良いですが一応limit 1としました。

sql

1 $strGetMail = "SELECT * FROM TableA WHERE Mail = 'aaaa' limit 1";2 $objDBResult = $objPDO -> query($strGetMail);3 $userdata=$objDBResult->fetch();45 if (empty($userdata)){↲ 6 echo "No Data Found \n";7 }else{↲ 8 echo "{$userdata['Mail']} \n";9 }↲

投稿2016/12/25 14:49

A.Ichi

総合スコア4070

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

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

0

php

1<?php 2 3ini_set('display_errors', 1); 4error_reporting(E_ALL); 5 6try { 7 8 $sdsn = 'mysql:host=localhost;dbname=sample;charset=utf8'; 9 $username = 'root'; 10 $password = 'password'; 11 $options = [ 12 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION 13 ]; 14 $pdo = new PDO($dsn, $username, $password, $optios); 15 16 $sql = "SELECT `id`, `name`, `email` FROM Table WHERE `email` = :email"; 17 $stml = $pdo->prepare($sql); 18 19 $stml->bindColumn(':email', $email, PDO::PARAM_STR); 20 21 $stml->execute(); 22 $row = $stml->fetch(PDO::FETCH_ASSOC); // 最初の行のみ取得 23 24 var_dump($row['id']); 25 var_dump($row['name']); 26 var_dump($row['email']); 27 28 // $rows = $stml->fetchAll(PDO::FETCH_ASSOC); // 全ての行を取得 29 // var_dump($rows); 30} catch (PDOException $ex) { 31 echo $ex->getMessage(); 32}

投稿2016/12/25 14:38

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問