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;
}
}
但是,此類類很少能按預期使用-總是有很多例外情況和手動格式化才能使其可用。

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