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

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

解決済みの質問

SELECT文をinclude(SQLとPHP)

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-11 16:08:17

QNo.9303864

困ってます

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

table.php を、下記のように記述してください。

<?php
$table_name = '参照したいテーブル名';
?>



その上で、SQLを呼び出すphpに下記記述を追加して下さい。

function connect() {
require 'table.php'; // この行を追加



最後に、テーブル名の指定を変数にして下さい。

$st = $pdo->query("SELECT * FROM {$table_name}");

投稿日時 - 2017-03-16 08:24:03

補足

ご回答ありがとうございました。

ご指摘に従い、

table.phpを
<?php
$table_name = 'ここでは「table-name」';
?>
とし、

SQLを呼び出すphpを

<?php
function connect() {
require 'table.php';//ここに追加しました。
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();
?>
としましたが、エラーが出てアクセスできませんでした。

require 'table.php';//ここに追加しました。
の位置が悪いのでしょうか。

お手数をおかけして申し訳ありません。
間違っているところをご指摘頂だければ有難いです。
何卒よろしくお願いいたします。

投稿日時 - 2017-03-16 09:54:02

お礼

ご回答ありがとうございます。
こちらの理解力不足でお手数をおかけします。
何卒よろしくお願いします。

投稿日時 - 2017-03-16 09:55:42

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

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

回答(1)

あなたにオススメの質問