PHP如何检查记录是否存在(PDO)



当以下不存在记录时,我尝试插入

$query = $db->query("SELECT * FROM people WHERE first_name = :first_name");
$statement = $db->prepare($query);
$statement->execute();
$count = $statement->fetchColumn();
if ($count === 1)
{
echo "First name Exist";
}
else
{
$query = "INSERT INTO people (first_name, last_name) VALUES (:first_name, :last_name)";
for($count = 0; $count<count($_POST['hidden_first_name']); $count++)
{
$data = array(
':first_name' => $_POST['hidden_first_name'][$count],
':last_name' => $_POST['hidden_last_name'][$count]
);
$statement = $db->prepare($query);
$statement->execute($data);
}  
}

它仍然插入到使名字重复的数据库中。也试着在这里找到被接受的答案,但我无法让它发挥作用。

起初,您没有为:first_name令牌提供适当的值

// Let's say value to match = $_POST['first_name']
$query = $db->query("SELECT * FROM people WHERE first_name = :first_name");
$statement = $db->prepare($query);
// Specify value to match in the `execute` call
$statement->execute(array(':first_name' => $_POST['first_name']));
//Now try this to confirm if the result is fetched
if ($statement->fetch())
{
echo "First name Exist";
}
//else it doesn't exist fetch!
else
{
$query = "INSERT INTO people (first_name, last_name) VALUES (:first_name, :last_name)";
$statement = $db->prepare($query);
for($count = 0; $count<count($_POST['hidden_first_name']); $count++)
{
$data = array(
':first_name' => $_POST['hidden_first_name'][$count],
':last_name' => $_POST['hidden_last_name'][$count]
);
$statement->execute($data);
}  
}

最新更新