MySQLのテーブル名を変数に置いた場合
お世話になります。
jQueryのプラグインを使用してDBから吐き出したデータを並べ替えをして、
UPDATEをさせているのですが、UPDATE先のテーブル名を変数に置いた場合、
例えば、
$id_set = "1";
if (isset($_POST['result'])) {
$sql = "UPDATE `{$id_set}` SET no = ? WHERE id = ?";
$stmt = $conn->prepare($sql);
foreach (explode(',', $_POST['result']) as $i => $id) {
$stmt->execute(array(++$i, $id));
} //foreachの終了
} //if (isset($_POST['result'])) の終了
$sql1 = "SELECT id, name, price, no FROM `{$id_set}` ORDER BY no";
$stmt = $conn->prepare($sql1);
$stmt->execute();
foreach ($stmt as $row) {
$state[] = array("id"=>$row['id'], "name"=>$row['name'], "price"=>$row['price'], "no"=>$row['no']);
$this->smarty_obj->assign("state_loop",$state);
} //foreachの終了
とすれば、「 1 」というテーブルのデータをSELECTしてUPDATEと正常に走るのですが、
$id_set = $_POST["id"];
等としてpostした場合、UPDATEの際に「 Call to a member function execute 」のエラーが
吐かれます。該当のテーブルが存在しないと認識されているのだと思いますが、
ページ遷移してくる際に持ってきたデータを活用してテーブル名にセットして、
尚且つ正常にUPDATEさせるにはどの様な構文にすれば良いのでしょうか?
ご教示の程、どうぞよろしくお願い申し上げます。
----------------
▼スペック
PHP 5.3.3
MySQL 5.0.95
----------------