임 그냥 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>';
?>
같은 변수에서 이름을 끌어 테이블 이름을 변경하려면 : 당신은 당신의 SQL 구문에 오류가 1064; 'tbl_staff' 'near line 1'근처에서 사용할 올바른 구문에 대해서는 MySQL 서버 버전에 해당하는 설명서를 확인하십시오.
Ive가 $ table, '$ table'및 {$ table}을 시도했지만 읽을 것으로 보입니다. 문자 그대로 $ table이며 변수로 대체되지 않습니다. PDO 진술과 다른 규칙이 있습니까? PDO로 그립을 잃어 버렸기 때문에 조금 실수합니다.
이 무엇입니까? – Maximus2012
'$ table'에서 큰 따옴표를 제거하십시오. – ironcito