Здравствуйте, я метод допустим, что проверки, если строка существует:Встроенные функции для запросов добавляют дополнительные параметры?
/**
* Method rowExists
*
* Checks if row exists with given parameters.
*
* @param name The name of the value in a column.
* @param column The name of the given column.
* @param table The name of the given table.
**/
private function rowExists($name, $column, $table)
{
$this->user = $this->pdo->prepare("SELECT * FROM ".$table." WHERE ".$column." = :name");
$this->user->execute(array(":name" => $name));
if ($this->user->rowCount() > 0)
{
return true;
}
else
{
return false;
}
}
С этим я могу проверить, если строка существует
Использование:
if ($this->rowExistsAnd($this->get['user_id'], $generatedCode, 'user_id', 'generated_code', 'account_verifications') === true) {
сейчас что я прошу, этот метод поддерживает только 1 параметр для проверки
Что делать, если я хочу проверить ГДЕ две колонки?
Пример:
Текущий запрос делает:
SELECT * FROM table WHERE column1 = value1
Я хочу:
SELECT * FROM table WHERE column1 = value1 AND column2 = value2
Я хочу сделать это с 1 методом, без создание r с добавлением параметров. Как это сделать?
Edit:
private function rowDoesExist($params)
{
if (count($params) < 4)
{
$this->user = $this->pdo->prepare("SELECT * FROM ".$params[0]." WHERE ".$params[1]." = :name");
$execute = array(":name" => $params[2]);
}
else
{
$this->user = $this->pdo->prepare("SELECT * FROM ".$params[0]." WHERE ".$params[1]." = :name AND ".$params[2]." = :name2");
$execute = array(":name" => $params[3], ":name2" => $params[4]);
}
$this->user->execute($execute));
}
Использование:
$this->rowDoesExist(array('users', 'user_name', $username);
Вы можете использовать массивы, а не отдельные строки. Один, содержащий имена столбцов, а другой - значения. – Havelock