このクエリを実行すると:
SELECT * FROM (SELECT `db` FROM site WHERE `url`='$site') . smspq
このエラーが発生します:
SQL構文にエラーがあります。'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。1行目のsmspq'
ただし、このクエリは機能します。
SELECT * FROM `database` . `table`
なんで?
サブクエリにエイリアスを追加したい場合は、オプションでasに.
置き換えるAS
か、単に削除します。.
AS
SELECT *
FROM (SELECT `db`
FROM site
WHERE `url`='$site') smspq
これはSQLの動作方法ではありません。どのデータベースでどのテーブルで作業したいかを明確に述べる必要があります。
あなたはによって最も好きなデータベースを設定することができます
USE mydatabase;
テーブルへのすべてのリクエストはそのデータベースに渡されます。
SELECT * FROM mytable;
SELECT * FROM mydatabase.mytable; -- same as above because of USE mytable;
唯一の方法は、準備と実行(ドキュメントを参照)を使用することですが、単純なコマンド(SELECT、UPDATE、...)では、その方法で目的の目標を達成することはできません。
アップデート
クエリを分割する必要があります。
最初のクエリ
USE mycommondb;
SELECT `db` FROM site WHERE `url`='$site';
2番:
USE $db_from_site;
SELECT * FROM table;
($のため、phpから呼び出されると思います; o))