-1

ここにいる多くの人々によって提案されているように、私はPDOに移行しています:)

これが現在動作するコードです

<?php
$table = "tbl_staff";
$all = $database->find_by_sql('SELECT * FROM tbl_staff'); echo '<pre>';
echo "<b> Find by SQL</b></br>";
print_r($all);
echo '</pre>';
?>

public function find_by_sql($sql) {
$this->query($sql);
$rows = $this->resultset();
return $rows;
}

public function query($query){
$this->stmt = $this->dbh->prepare($query);
}

public function resultset(){
$this->execute();
return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
}

public function execute(){
return $this->stmt->execute();
}

すべてが期待どおりに機能し、すべての tbl_staff の詳細を返すようにします。

ただし、テーブル名を変更して、このような変数から名前を取得したい

<?php
$table = "tbl_staff";
$all = $database->find_by_sql('SELECT * FROM "'.$table.'"'); echo '<pre>';
echo "<b> Find all rows </b></br>";
print_r($all);
echo '</pre>';
?>

構文エラーまたはアクセス違反のサーバー エラーが返されます: 1064 SQL 構文にエラーがあります。1 行目の '"tbl_staff"' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

$table、'$table'、および {$table} だけを試しましたが、行を文字通り $table として読み取り、変数に置き換えないようです。PDOステートメントには別のルールがありますか? PDOを理解するのに少し迷っているので、これが単純なものである場合はお詫びします

4

2 に答える 2