php mysql обновляет генерацию статистики из значений формы - PullRequest
1 голос
/ 03 февраля 2010

Я создаю очень маленький абстрактный слой базы данных, я хочу отправить массив переменных, которые я получил из формы, сгенерировать обновление SQL-оператора и в конце концов выполнить его. Что мне поставить со второй по последнюю строку ниже? например.

$table name = "user";
$username = $_post['username'];
$password = $_post['password'];
$email    = $_post['email'];
$array = (username=>$username, password=>$password, email=>$email);
$query = "update $this->tableName".
$query = """" The value from the assc array in the form of database value='form value' 
$query = "WHERE condition";

Ответы [ 2 ]

3 голосов
/ 03 февраля 2010

Вы можете использовать цикл foreach() для генерации предложения запроса из вашего массива.Обратите внимание, что вам нужно объявить ваш массив с помощью конструкции array() и заключить в кавычки ваши ассоциативные ключи.

//...
$array = array('username'=>$username, 'password'=>$password, 'email'=>$email);
$query = "update ".$this->tableName." SET ";
foreach($array as $field => $value) {
    $query .= "`".$field."`='".mysql_real_escape_string($value)."',";
}
//knock off trailing comma
$query = substr($query,0,-1);
$query .= " WHERE condition";
0 голосов
/ 03 февраля 2010

Вы можете использовать что-то вроде:

$a = array();
foreach($array as $key => $value)
{
    $a[] = $key . " = '" . mysql_real_escape_string($value) ."'";
}
$query = join(',', $a);

но вам нужно позаботиться об особых случаях, например, когда значение равно нулю или дата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...