Jquery验证检查数据库中是否存在值

时间:2014-12-23 12:48:32

标签: php jquery mysql validation

正如标题所示,如果Patch_No的值存在,我正试图通过jquery验证插件进行检查。我阅读了许多其他类似的主题,这就是我如何计算代码,但它似乎没有工作,虽然没有错误。 我很确定DBconnection.php是有效的,因此我在另一个文件中使用它来输入数据。

<?php
include 'DBconnection.php';
$patch = $_REQUEST['patch'];
$sql="SELECT * FROM champions WHERE Patch_No ='$patch'";
$conn->query($sql);
$num = mysql_num_rows($sql);
if($num>0){
    echo 'false';
}
else{
    echo 'true';
}
?>

这里也是jquery验证码

<script>
    $(document).ready(function(){
        $('#first_form').validate({
            rules: {
                patch: {
                    required: true,
                    minlength: 4,
                    remote: {
                        url: "checkpatch.php",
                        type: "post"
                        }
                    }
                },
            messages: {
                patch: {
                    required: "Please enter patch version.",
                    remote: "This Patch already exists."
                    }

                }
        });
    });
</script>

最后但并非最不重要的是php中的实际形式

echo '<form id="first_form" action="index.php" method="POST" style="border: 0; margin: 0;">';
                echo '<input type="hidden" value="'.$formid.'" name="formid">';
                echo '<input type="text" name="patch" placeholder="PATCH e.g. 4.20" required autofocus><br/>';
                echo '<input placeholder="Number of Champions" value="1" type="number" name="champ_number" min="1" max="99" required><br/>';
                echo '<input type="submit" value="next">';
            echo '</form>';

修改 DBconnection.php

<?php
$servername = "localhost";
$username = "root";
$password = "";
$db = "patches";

$conn = new mysqli($servername, $username, $password, $db);
if($conn->connect_error){
    die("Connection failed: ". $conn->connect_error);
}
?>

2 个答案:

答案 0 :(得分:1)

尝试这样:

$sql="SELECT * FROM champions WHERE Patch_No ='".$patch."'";
$result = $conn->query($sql);
$num = $result->num_rows;

答案 1 :(得分:0)

这些线路非常糟糕。您想要获取字符串...使用此:

$sql="SELECT * FROM champions WHERE Patch_No ='$patch'";
$conn->query($sql);
$num = mysql_num_rows($conn);

您需要提取$conn,即资源,而不是$sql

备注

  • 不要使用mysql函数,不推荐使用它们。

  • 通过在查询中转义变量或使用预准备语句来避免sql注入。