第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP PDO-綁定表名稱?

PHP PDO-綁定表名稱?

PHP
牛魔王的故事 2019-11-04 14:00:38
可以綁定表名稱嗎?我想創(chuàng)建一個類以從表中讀取列,并根據(jù)字段類型為我生成表單輸入。當我這樣做時$form = new form("users");,構造函數(shù)應該從使用以下代碼從表中獲取字段名稱開始:class form{    public function __construct($table, $skip = array("id")){        $pdo = new PDO('mysql:host=localhost;dbname=site;',USER,PASS);        $query = $pdo->prepare("DESCRIBE :table");        $query->bindValue(':table', $table, PDO::PARAM_STR, strlen($table));        $query->execute();        while($field = $query->fetch(PDO::FETCH_NUM)){            var_dump($field);            echo "<br /><br />";        }        unset($pdo);    }}當我在prepare語句中指定“ users”而不是“:table”時,這很好用,但是綁定可以正常工作,我很確定這是因為它試圖綁定表名。另外,這需要綁定,因為我希望能夠通過諸如此類傳遞我的表名$_GET。
查看完整描述

3 回答

?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

可以綁定表名稱嗎?


沒有。


您必須將表名稱列入白名單。我懷疑您想讓用戶瀏覽數(shù)據(jù)庫中的任何表。


而且,您還必須手動設置標識符的格式。有一個帶示例的Wiki。為什么不先閱讀它?


更新: 如您所見,PDO實用于現(xiàn)實生活中的任務。因此,您必須擁有一個更智能的抽象庫來處理MySQL查詢。這是一個使用safeMysql類的示例,它將大大縮短您的代碼:


class form{

    public function __construct($table){

        global $db;

        return $db->getAll("DESCRIBE ?n", $table);

    }

}

2個注意事項:


我刪除了第二個參數(shù),因為您的函數(shù)中沒有使用它的代碼。

切勿在課堂上聯(lián)系。請改用已經(jīng)打開的連接。否則,您將通過大量連接殺死MySQL服務器。

排除實施版本


class form {

    public function __construct($table,$skip = array("id")){

        global $db;

        $data = array();

        $res = $db->query("DESCRIBE ?n", $table);

        while($row = $db->fetch($res)) {

            if (!in_array($row['Field'],$skip)) {

                $data[] = $row;

            }

        }

        return $data;

    }

}

但是,此類類很少能按預期使用-總是有很多例外情況和手動格式化才能使其可用。


查看完整回答
反對 回復 2019-11-04
?
波斯汪

TA貢獻1811條經(jīng)驗 獲得超4個贊

完成所有修改后,您的答案就會變得更加有意義。我將堅持一個簡單的,無綁定的PDO查詢,因為它需要與您提到的類相同數(shù)量的語句,并創(chuàng)建一個全局pdo變量。同樣,該類并非旨在使表單從頭到尾完成,而只是旨在為您創(chuàng)建具有正確輸入類型的輸入和標簽,具有正確“ for”的標簽,最大長度等于數(shù)據(jù)庫中字段的最大長度,等等。就格式化而言,只要保持HTML簡單,所有格式化都可以在CSS中輕松完成。

查看完整回答
反對 回復 2019-11-04
  • 3 回答
  • 0 關注
  • 338 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號