みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SELECT文をinclude(SQLとPHP)2

SQLのデータを呼び出すときに

<?php
function connect() {
return new PDO("mysql:dbname=★★★★★;host=★★★★★","★★★★★","★★★★★",
array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`"));
}
$pdo = connect();
$st = $pdo->query("SELECT * FROM table-name");
$word = $st->fetchAll();
?>

としています。

ここで、テーブル名(ここでは「table-name」)を外部のphpからincludeすることは可能でしょうか?

試したのは、
table-name
という内容のphpを
「table.php」というファイル名で同じディレクトリ内に保存。

<?php
function connect() {
return new PDO("mysql:dbname=★★★★★;host=★★★★★","★★★★★","★★★★★",
array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`"));
}
$pdo = connect();
$st = $pdo->query("SELECT * FROM {<?php include('table.php'); ?>}");
$word = $st->fetchAll();
?>
としたのですが、反応しませんでした。

そもそもこのようなことが可能かどうかもわかりません。
良い方法がありましたら、ご指導ください。

投稿日時 - 2017-03-16 11:51:17

QNo.9305712

困ってます

質問者が選んだベストアンサー

table.php
==========
<?php
$tableName = 'hoge';
==========
として
==========
include('table.php');
$pdo = connect();
$st = $pdo->query("SELECT * FROM ".$tableName);
$word = $st->fetchAll();
==========
じゃダメでしょうか。

投稿日時 - 2017-03-16 12:04:44

補足

ご回答ありがとうございます。
ご指摘の通り

table.phpを
<?php
$table_name = 'hoge';
?>
とし、

SQLを呼び出すphpを
<?php
function connect() {
return new PDO("mysql:dbname=★★★★★;host=★★★★★","★★★★★","★★★★★",
array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`"));
}
include('table.php');//←★この位置に追加
$pdo = connect();
$st = $pdo->query("SELECT * FROM {$table_name}");
$word = $st->fetchAll();
?>


※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
t_ohta様
以前、別の質問でもお世話になりました。
http://okwave.jp/qa/q9296520.html
ありがとうございます。


実はこの件についてはずっと悩んでおり、OKWEBでは2回目の質問でした。
1回目のときは
http://okwave.jp/qa/q9303864.html

okafukutarou様からご回答を頂き、コードの位置がわからず試行錯誤しておりました。
今回、t_ohta様のご回答のおかげで、そのコードの位置も解決しました。

<?php
function connect() {
return new PDO("mysql:dbname=★★★★★;host=★★★★★","★★★★★","★★★★★",
array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`"));
}
require 'table.php';//←★この位置に追加
$pdo = connect();
$st = $pdo->query("SELECT * FROM {$table_name}");
$word = $st->fetchAll();
?>
で動きました。


include('table.php');とrequire 'table.php';のどちらでも(その位置に置けば)動くことがわかりました。

t_ohta様、okafukutarou様、大変お世話になりました。
ありがとうございます。

投稿日時 - 2017-03-16 13:46:04

お礼

t_ohta様
この度はお世話になりました。

また、別の回答者のことまで書いてしまい申し訳ありません。
このようなことは、大変失礼であることは重々承知しておりますが、このシステムに慣れておらずokafukutarou様へお礼できなかったので、この場を使わせて頂きました。
改めて失礼をお詫びし、お礼申し上げます。

投稿日時 - 2017-03-16 13:46:06

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問