我尝试运行查询以检查输入到文本字段中的内容是否与存储在数据库中的内容相匹配。
当前代码:
</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
暂时没有相关性。
答案 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)
代码的更好版本,由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); ?>