Можно ли связать имя таблицы?PHP PDO - имя таблицы привязки?
Я хочу, чтобы класс читал столбцы из таблиц и, в зависимости от типа поля, генерировал входы формы для меня. Когда я $form = new form("users");
, конструктор должен начать с получения имен полей из таблицы с помощью следующего кода:
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);
}
}
Это прекрасно работает, когда я указываю «пользователей» вместо «: таблица» в подготовке , но привязка работает, и я уверен, что это потому, что он пытается связать имя таблицы. Кроме того, это необходимо привязать, потому что я хотел бы иметь возможность передавать мои имена таблиц через $_GET
и такие.
В этой вики в разделе «Подготовленные инструкции PDO и IN», почему вы не могли заменить строку SQL параметром для таблицы? – acutesoftware
Я не знал, что есть теги wikis. Это удобно. Кроме того, почему такой класс был бы пустой тратой времени? –
После всех ваших изменений ваши ответы имеют гораздо больший смысл. Я буду придерживаться простого, без привязки, PDO-запроса, поскольку он будет принимать такое же количество операторов, как и упомянутый вами класс, и сделать глобальную переменную pdo. Кроме того, класс не предназначен для создания формы от начала до конца, он просто предназначен для создания входов и меток для вас с правильным типом ввода, ярлыками с правильными «для», входы с максимальной длиной, равной максимальная длина поля в базе данных и т. д. Что касается форматирования, если вы сохраняете HTML простым, все форматирование может быть сделано очень легко в CSS. –