【问题标题】:Jquery validation checking if value exists in databaseJquery验证检查数据库中是否存在值
【发布时间】:2014-12-23 12:48:32
【问题描述】:

正如标题所说,我正在尝试通过 jquery 验证插件检查 Patch_No 的值是否存在。我通读了许多其他类似的主题,这就是我计算代码的方式,但它似乎不起作用,尽管没有错误。 我很确定 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);
}
?>

【问题讨论】:

  • 顺便说一句,您的代码不安全。请参阅 PHP 的 mysqli_/PDO API 和准备好的语句!
  • 我现在正在学习 mysql 和 php,所以在我完成功能后,我将转向安全性
  • 强烈建议你颠倒优先顺序!!
  • 把代码改成if($num&gt;0){ echo json_encode(false); } else{ echo json_encode(true); },看看有没有区别。
  • 您有一个mysqli 连接并使用mysql 函数。把mysql函数改成mysqli兼容的。

标签: php jquery mysql validation


【解决方案1】:

试试这样:

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

【讨论】:

【解决方案2】:

这些台词非常糟糕。你想获取一个字符串......使用这个:

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

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

注意事项

  • 不要使用 mysql 函数,它们已被弃用。

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

【讨论】:

  • 我将源更改为 $conn 不幸的是仍然没有任何反应
  • 编辑你的问题,告诉我DBconnection.php中的内容
猜你喜欢
  • 2017-12-11
  • 1970-01-01
  • 2023-02-10
  • 2018-09-22
  • 2016-10-20
  • 1970-01-01
  • 2014-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多