こんにちは、行が存在するかどうかを確認するメソッドがあります。
/**
* 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つのパラメーターのみをサポートしています
WHERE 2 列をチェックしたい場合はどうすればよいですか?
例:
現在のクエリは次のとおりです。
SELECT * FROM table WHERE column1 = value1
私が欲しい:
SELECT * FROM table WHERE column1 = value1 AND column2 = value2
パラメータを追加して別のメソッドを作成せずに、1 つのメソッドで実行したいと考えています。 これどうやってするの?
編集:
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);