【问题标题】:Check if Number already exist in row mysql database检查数字是否已经存在于行mysql数据库中
【发布时间】:2014-10-11 16:51:54
【问题描述】:
<?php
date_default_timezone_set('Asia/Manila');
$conn=mysql_connect("localhost","root","");
    mysql_select_db("dbposo",$conn);


if(isset($_POST['add']))
{


    if( empty($_POST['fname']) || empty($_POST['mname']) || empty($_POST['lname']))
    {
        echo "<script>alert('Please fill up all the fields!')</script>";
        header("Refresh: 0;url=admin_publicviolation.php");
    }


else
    {
        $number=$_POST['number'];
        $fname=$_POST['fname'];
        $mname=$_POST['mname'];
        $lname=$_POST['lname'];
        $age=$_POST['age'];
        $gender=$_POST['gender'];
        $violation=$_POST['violation'];
        $officer=$_POST['officer'];
        $offenses=$_POST['offenses'];
        $date=date("y-m-d");
        $time=date("H:i:s");
        $price=$_POST['price'];

        mysql_query("insert into tblcitizen(number,fname,mname,lname,age,gender,violation,officer,offenses,date,time, price) values('$number','$fname','$mname', '$lname', '$age', '$gender', '$violation' , '$officer', '$offenses','$date','$time','100')",$conn) or die(mysql_error());

        echo "<script>alert('Successfully Recorded, First penalty: 100php!')</script>";
        header("Refresh: 0;url=admin_publicviolation.php");
    }

}

?>

如果数据库中已经存在 $number,我想拒绝注册,有人帮我吗?想不通。我不能使用一些编码方法。不知道怎么用其他的

【问题讨论】:

  • 先使用SELECT查询,然后从DB中选择$number。如果数字存在,则不要插入数据,否则使用插入查询。
  • 对 SQL 注入开放。
  • 试试这个-http://stackoverflow.com/questions/20048028/not-check-if-user-is-taken/20048087#20048087
  • @MaduraiCitizen 它的未定义变量

标签: php


【解决方案1】:

ALTER TABLE tblcitizen ADD CONSTRAINT tblcitizen UNIQUE (number);

现在,如果数字已经存在,插入将失败,您需要检查 mysql_error 以了解如何继续。如果您使用的是未弃用的 mysqli 或 PDO 接口,则检查方法是 mysqli_error 或 PDO::errinfo,它们的工作方式相同。

【讨论】:

  • SQL 行需要放入你的数据库服务器;至于错误方法,请检查它们是否返回null。
【解决方案2】:

首先使用选择查询 AND 请使用 mysqli 而不是 mysql

$query = mysql_query("SELECT * FROM tblcitizen WHERE number = '".$number."'");
$fetch_rows = mysql_num_rows($query);
if ( $fetch_rows > 0 )
{
  // then do something
} else {
     mysql_query("insert into tblcitizen(number,fname,mname,lname,age,gender,violation,officer,offenses,date,time, price) values('$number','$fname','$mname', '$lname', '$age', '$gender', '$violation' , '$officer', '$offenses','$date','$time','100')",$conn) or die(mysql_error());

    echo "<script>alert('Successfully Recorded, First penalty: 100php!')</script>";
    header("Refresh: 0;url=admin_publicviolation.php");
}

【讨论】:

  • 注意:未定义变量:第 9 行 C:\xampp\htdocs\THESISII\execute_publicviolation.php 中的数字
  • 请检查您的表格和我使用的变量是否已初始化您是否检查了错误列表
  • 我在数据库中有数值,它的未定义变量怎么来的?
  • 在 sqlyog 或 phpmyadmin 中运行查询并检查结果
【解决方案3】:
<?php
date_default_timezone_set('Asia/Manila');
$conn=mysql_connect("localhost","root","");
    mysql_select_db("dbposo",$conn);


if(isset($_POST['add']))
{


    if( empty($_POST['fname']) || empty($_POST['mname']) || empty($_POST['lname']))
    {
        echo "<script>alert('Please fill up all the fields!')</script>";
        header("Refresh: 0;url=admin_publicviolation.php");
    }



// Check if  already exists 
 $number = $_REQUEST['number']; 
$result = mysql_query("SELECT * FROM tblcitizen WHERE number = '$number' "); 

if (mysql_num_rows($result)==0) { 

// Go ahead and insert everything in table
    $number=$_POST['number'];
        $fname=$_POST['fname'];
        $mname=$_POST['mname'];
        $lname=$_POST['lname'];
        $age=$_POST['age'];
        $gender=$_POST['gender'];
        $violation=$_POST['violation'];
        $officer=$_POST['officer'];
        $offenses=$_POST['offenses'];
        $date=date("y-m-d");
        $time=date("H:i:s");
        $price=$_POST['price'];

        mysql_query("insert into tblcitizen(number,fname,mname,lname,age,gender,violation,officer,offenses,date,time, price) values('$number','$fname','$mname', '$lname', '$age', '$gender', '$violation' , '$officer', '$offenses','$date','$time','100')",$conn) or die(mysql_error());

        echo "<script>alert('Successfully Recorded, First penalty: 100php!')</script>";
        header("Refresh: 0;url=admin_publicviolation.php");





  echo 'Your data was sent'; 



}
else
    {
    echo "Number already exists ";
    }

}

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多