如何检查数据库中是否有相同的数据?

时间:2017-09-25 07:04:51

标签: php sql pdo

我想检查新输入的数据是否已经存在于数据库中,我搜索了它并尝试了很多次但它没有工作数据库接受已经存在的数据,我是使用PDO和PHP。

数据库有1个名为data的表,此表有2列名称和电话

以下是代码:

$connect = new PDO("mysql:host ={$host}; dbname={$database}" , $username , $password);
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$statement = $connect->prepare("SELECT * FROM data WHERE name= :sname AND phone = :sphone");
$statement->execute(array("sname" => $name , "sphone" => $phone));
$count = $statement->rowCount();

if($count > 0){
}else{                      
    $q = $connect->prepare("INSERT INTO data(name,phone) VALUES(:aname, :aphone)");
    $q->execute(array("aname" => $name,"aphone" => $phone));
}

2 个答案:

答案 0 :(得分:0)

如果您确定此信息只应插入一次:将“名称”和“电话”的组合设为唯一。这不是您要求的,但结果将是相同的:没有重复的内容。

ALTER TABLE data ADD UNIQUE INDEX Index1 (name, phone);

您现在可以插入您想要的内容:如果它是重复的,则插入操作将失败。如果需要,您可以检查此(特定)故障并通知用户。

答案 1 :(得分:0)

尝试:

$count = $statement->fetchColumn();

而不是

$count = $statement->rowCount();