※ ChatGPTを利用し、要約された質問です(原文:SELECT文をinclude(SQLとPHP)2)
外部のphpからテーブル名を呼び出す方法
このQ&Aのポイント
PHPで外部のphpファイルからテーブル名を呼び出す方法を知りたいです。
現在、テーブル名をinclude関数を使って外部のphpファイルから呼び出そうとしていますが、うまくいきません。
テーブル名を外部から指定する方法や、別のアプローチがあれば教えてください。
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();
?>
としたのですが、反応しませんでした。
そもそもこのようなことが可能かどうかもわかりません。
良い方法がありましたら、ご指導ください。
お礼
t_ohta様 この度はお世話になりました。 また、別の回答者のことまで書いてしまい申し訳ありません。 このようなことは、大変失礼であることは重々承知しておりますが、このシステムに慣れておらずokafukutarou様へお礼できなかったので、この場を使わせて頂きました。 改めて失礼をお詫びし、お礼申し上げます。
補足
ご回答ありがとうございます。 ご指摘の通り 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様、大変お世話になりました。 ありがとうございます。