簡體   English   中英

這個單 PDO 有什么問題?

[英]what's wrong with this single PDO?

事情就是這樣,其他的 PDO 運行良好,但這個不行。 我試過了

execute(array(':t'=>$table));

沒有成功。 想法?

public function __construct($table){
        try{
                $pdocnx = new PDO("mysql:host=localhost;dbname=sigcat",'root','');
                $stmt = $pdocnx->prepare('select * from sigcat.:t');
                $stmt->bindParam(':t', urldecode($table), PDO::PARAM_STR,45);
                $stmt->execute();
                $row = $stmt->fetchAll(PDO::FETCH_ASSOC);
                var_dump($row);
        }catch(Exception $e){
            echo $e->getMessage();
        }   

    }

我在“供應”中有很多記錄,但它返回數組(0){}。 我正在使用 $_GET['table'] 獲取 'table' 參數。 不過沒有例外。

您不能綁定表名,只能綁定值。

維護一個有效名稱列表並確保該字符串存在於有效列表中。

如果您無法構建有效名稱列表,則您可能做錯了什么。

你不能綁定表,所以你可以做一個像這樣偷偷摸摸的把戲:

public function myFunction($table){
    $st = "SELECT FROM `" . $table ."` ..some sql";
    $statement->prepare($st);
    $statement->execute();

} 

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM