如果数据库中存在数据

时间:2013-11-11 09:34:27

标签: php sql

我试图在我的数据库中检查客户表中是否已存在具有相同邮政编码的客户,以及是否存在。

我有下面的PHP代码,我遇到的问题是。我已经收到回音信息,天气存在或者它们不存在。 select_to_arrayconfig.php中的一个函数,它可以正常工作。

<?php
require("config.php");

    $validate_value = isset($_POST['value']) ? $_POST['value'] : null; 
    $validate_Year =isset($_POST['Year']) ? $_POST['value'] : null; 
    $validate_postcode  = isset($_POST['postcode']) ? $_POST['value'] : null; 
    $select = "SELECT count (*) FROM customers WHERE reg_year= :reg_year 
                 AND reg_code = :reg_name AND reg_value = :reg_value";

                $bind_bb = array(':reg_year' => $validate_Year,
                                    ':reg_code' => $validate_code,
                                    ':reg_value' => $validate_value);


                $validate_result = select_to_array($db_connect,$select, $index, $bind_bb);


        if ($validate_result[0][0] == 0) {  

        echo 'Customer Does not no exist';

        }       
        else {

        echo 'Already exist, please try a different postcode';

        }       
?>

1 个答案:

答案 0 :(得分:1)

您从许多方面检查是不正确的 - 首先您需要知道是否有任何数据,而不是您有多少记录,因此您的SELECT应该包含LIMIT 1,因为这已经足够了。至于

if ($validate_result[0][0] == 0) {  

这也是无效的,就好像你的数据集是空的,你会抛出通知。替换为

if (empty($validate_result)) {  

if (count($validate_result) == 0) {  

它看起来你可能有错误的查询:

':reg_name' => $validate_name,

可能会查找空reg_name,因为$validate_name未在您的代码中设置(而其他参数是)