🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

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

Q&A

解決済

1回答

504閲覧

PHPでデータベースを検索する画面を作っています。$db->query($sql)->fetch();の意味を教えてください

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

0グッド

1クリップ

投稿2021/01/08 03:31

phpを勉強中です。
PHPでデータベースを検索する画面を作っています。
下のコードの「年表テーブルの存在確認」の
$db->query("SHOW TABLES LIKE '{$tblName}';")->rowCount()の意味が
なんとなくしか分かりません。
$db->query("SHOW TABLES LIKE '{$tblName}';")を行った後、
{$tblName}がいくつか戻ってくるとおもいます。

その後、{$db->query("SHOW TABLES LIKE '{$tblName}';")}->rowCount()するということでいいでしょうか。

恥ずかしい質問ですが御教授いただければ幸いです。

<html> <head> <meta charset="utf-8"> </head> <body> <?php // データを更新する画面を作るプログラム // サーバーに接続にPDOクラスを利用する場合 // プリペアドステートメントを利用してデータを取得する方法 $usr = 'root'; // ユーザー名 $pwd = 'xxx';    // パスワード(USBWebserverの場合) $host = 'localhost';     // データベース・ホスト名 $dbName = 'test'; // データベース名 $tblName = 'nenpyo'; // テーブル名 $dsn = "mysql:host={$host};dbname={$dbName};charset=utf8"; $db = new PDO($dsn, $usr, $pwd); // サーバーに接続 /* 年表テーブルの存在確認 */ if( ! $db->query("SHOW TABLES LIKE '{$tblName}';")->rowCount() ){ exit("年表テーブル「{$tblName}」が存在しません!"); } 以下省略...

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

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

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

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

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

ockeghem

2021/01/08 03:56 編集

参考にしたコードの出典を追加して下さい
guest

回答1

0

ベストアンサー

結局順番に実行されるので分解すれば良いのでは。

php

1$result = $db->query("SHOW TABLES LIKE '{$tblName}';"); 2if($result->rowCount()){ 3 4} 5 6

PDO::query()の返却値がPDOStatementなので、PDOStatement::rowCount()を呼び出している。

ただ、rowCountで要件満たせるかは検討の必要あり。

関連する PDOStatement によって実行された直近の SQL ステートメントが SELECT 文の場合、いくつかのデータベースは文によって返された 行数を返すかも知れません。しかしながら、 この振る舞いは全てのデータベースで保証されていません。 さまざまな場所で使用するアプリケーションでは、 これに頼ってはいけません

投稿2021/01/08 03:39

m.ts10806

総合スコア80875

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

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

m.ts10806

2021/01/08 03:43

質問本文にfetch()が出てこないので突っ込むか悩んだけど、考え方は同じ。分解。PHPマニュアル。
退会済みユーザー

退会済みユーザー

2021/01/08 04:52

いつも適切なアドバイスをいただきありがとうございます。
m.ts10806

2021/01/08 04:56

何度も指摘してるような気がしますが PHPマニュアル確認してください。 それだけで今回に限らず質問する必要なかったと思いませんか? もしPHPマニュアル確認の上で分からない点があったならそのように質問すべきです。
退会済みユーザー

退会済みユーザー

2021/01/08 05:08

PHPマニュアルは見ているんですが初心者には解りずらいので、ネット検索して調べてみたのですが、これを説明しているものがなかなか見つからないので、投稿しました。 少しづつですがPHPマニュアルを参考にはしています。わかりづらいので他のネットと見比べながら勉強しています。
m.ts10806

2021/01/08 05:16

もしPHPマニュアル確認の上で分からない点があったならそのように質問すべきです。 書いてないことを「しているもの」として認識するのは他人には無理です。 なので、今回の質問も「何も調べず試さず丸投げしている」印象しかありません。
退会済みユーザー

退会済みユーザー

2021/01/08 08:03

はいわかいました。 ありがとうございます。 質問の仕方をよくするように頑張ります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問