我是php和sql的新手,所以我遇到了一些任务问题。
任务是:我有一个包含3列的数据库,具有城市名称,minValue和maxValue。这个数据库必须有大约200行,如下所示:
| COL 1 | COL 2 | COL 3 |
|圣保罗| 65000000 | 65050000 |
|巴西利亚| 69000000 | 65090000 |
我必须收到一个值,并检查它是否在COL 2和COL 3的值之间,并且必须检查表格中的每一行。
现在我从post获得了值,并执行以下操作:
<body>
<?php
$cep = $_POST["cep"];
$connect = mysqli_connect("--db settings--");
$query = mysqli_query($connect, "SELECT * FROM tabela_cep WHERE $cep BETWEEN `COL 2` AND `COL 3`");
$dados= mysqli_fetch_array($query);
$cep_lenght = strlen((string)$cep);
if($cep_lenght == 7) {
$cep = (string)$cep;
$cep = "0" . $cep;
}else{
return;
}
if($dados) {
echo "<p>The value <strong>$cep</strong> is valid !</p>";
}else {
echo "<p>The value <strong>$cep</strong> is invalid !</p>";
}
?>
问题是:我提交的每个值都被视为有效。
我现在正在学习PHP,但我已经从基础知识中获益,而且我需要尽快解决这个问题,我需要你的帮助..我做错了什么?
答案 0 :(得分:0)
SELECT * FROM tabela_cep WHERE $cep > `COL 2` AND $cep < `COL 3`
正如已经说过的那样,你没有消毒你的输入。确保这样做是为了避免SQL注入。