调用DB以检查是否存在值

时间:2013-06-17 16:33:54

标签: php html

我尝试运行查询以检查输入到文本字段中的内容是否与存储在数据库中的内容相匹配。

当前代码:

</form>
<br />
<h2>Discount Code</h2>
<br />
<form method="POST" action=''>
        <input type="text" name="discount" />
        <input type="submit" name="discountSubmit" value="Apply" />

    <?php 
    if(isset($_POST['discountSubmit'])){

    $discountCode = $_POST['discount'];

    $codeCheck = mysqli_query("SELECT code FROM discount WHERE code = $discountCode");

    var_dump($codeCheck);
    }

    ?>
    </form>

然而,在点击discountSubmit时,var_dump返回NULL,因此它会让我认为$ codeCheck是错误的,但它对我来说是正确的。

我通过另一个页面连接数据库,所以问题不在于

数据库结构:

id        code       discount      expire

1         WEB10       10.00      2013-06-01

暂时没有相关性。

2 个答案:

答案 0 :(得分:2)

这里,代码不是整数值。因此,用单引号将其括起来。在使用$conn语句时,您还应该包含mysqli_query()(连接变量) - mysqli_query()

$codeCheck = mysqli_query($conn, "SELECT code FROM discount WHERE code = '$discountCode'");

[编辑] 如果您在此页面中包含连接页面,请尝试执行以下操作:

<强> connect.php

function connect(){
   $conn = mysqli_connect($host, $un, $pw, $db);
   return $conn;
}

现在,从当前页面调用此函数并获取连接变量:

$conn = connect();

现在,对$conn函数使用mysqli_query()


更改if条件如下:

if(isset($_POST['discount']))

答案 1 :(得分:0)

  1. 您不应该将SQL与HTML混合
  2. 如果没有先阅读手册页
  3. ,就不应该使用该功能
  4. 您不应该将裸API与mysqli一起使用,而是使用一些抽象库。
  5. 代码的更好版本,由safeMysql提供,它以你对mysqli_query的自然方式工作但却没有得到它。

    <?php 
    $check = NULL;
    if(isset($_POST['discountSubmit']))
    {
        $sql   = "SELECT code FROM discount WHERE code = ?i";
        $check = $db->getOne($sql, $_POST['discount']);
    }
    ?>
    <h2>Discount Code</h2>
    <br />
    <form method="POST" action=''>
            <input type="text" name="discount" />
            <input type="submit" name="discountSubmit" value="Apply" />
    </form>
    <?php var_dump($check); ?>