php - 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);
}
}
推荐阅读
- python - 迭代 DataFrame 行并在匹配后立即添加一个新行
- php - php中的多个MySQL查询不起作用
- node.js - 在 Mac 上降级 NPM 版本
- sql - 这是表示一个表的一对多关系的好方法吗?
- c# - 从内存中读取 XML
- python - 导入 fbprophet 后烧瓶重复日志
- html - 在 SAS 宏变量中过去时如何保持 HTML 文本区域的布局?
- docker-swarm - Docker Swarm:处于分配状态的流量
- fiware-sth-comet - STH Comet - mongo 数据库中的原始插入
- python - Python-opencv:'ASSERT:文件 qasciikey.cpp 中的“false”'在俄语按键上