Динамическое обновление MySQL / PHP для fieldname / column_name - PullRequest
1 голос
/ 23 мая 2011

Может кто-нибудь указать мне правильное направление / веб-сайт здесь

Есть ли способ в PHP, как вы можете динамически обновлять определенную таблицу, сравнивая имя поля из FORM и имя_ столбца из базы данных.

* 1005 например *

INPUT name = "email_адрес"

и

Имя столбца базы данных адрес электронной почты

Я нашел что-то, но, на мой взгляд, не такой гибкий ...

Ответы [ 2 ]

4 голосов
/ 23 мая 2011

У меня есть нечто подобное на месте, и оно действительно стабильно.

Все, что вам нужно сделать, это получить колоны с вашего стола, и создать ваши поля ввода динамично Затем, когда оно будет отправлено обратно, взорвите все в строку. Убедитесь, что полученные имена столбцов совпадают с именами в вашей таблице, а также введите значения. Добавьте_slashes и экранируйте любые кавычки или другие возможные символы SQL-инъекции.

Следующий код - тот, который я использую для МАССИВНОГО проекта / ов.

$postvars = $_POST;
 $q = "replace into `".$opertable."`
    (
    `".(implode('`,`',(remove__v(array_keys($postvars)))))."`)
        values
    (
    '".(implode('\',\'',$postvars))."')";

remove__v удаляет некоторые методы проверки и кнопки отправки и т. Д. С функцией ниже

function removeObj($array) {
  foreach($array as $key => $value) {
    if (substr_count($key,'obj__')) unset($array[$key]);
  }
  return $array;
}

все мои кнопки ввода названы как obj __ *

Надеюсь, вы поняли идею.

2 голосов
/ 23 мая 2011

Должна быть возможность просто получить ключ от суперглобального POST, но учесть риски безопасности. Помните, что форма отправляется вашим пользователем, он может легко создать поддельное поле ввода с именем rights и предоставить себе права администратора!

Если вы все еще хотите пойти с этим, решение простое. Цикл по почте, получение ключа и значения и добавление его в запрос SQL; как таковой:

$sql = "UPDATE user SET ";
foreach($_POST as $key => $value)
    $sql .= $key . " = " . $value . ',';

$sql = substr($sql,0,-1);       //Remove the last comma
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...