在php中添加Checks以进行数据库提交

时间:2014-07-20 13:19:36

标签: php mysql database input

编辑: 我得到了它,并为空检查&号码无法以零点检查开始 我是怎么做到的:

//Empty Check:
if (empty($_POST["number"])) {
    $numberErr = "Number can't be empty";
  } else {
    $number = test_input($_POST["number"]);
         }

//Zero Check
$zero = substr($number,0,1);
    if ($zero === "0") {
    $zeroErr = "Number can't start with 0";

并将此代码提交给数据库:

if (empty($_POST["number"])) {
    $numberErr = "Number can't be empty";
} elseif ($zero === "0") {
    $zeroErr = "Number can't start with 0";
} else {
    $number = mysqli_query($con,$sql);
    echo "<script type='text/javascript'>\n";
    echo "alert('!Added');\n";
    echo "</script>";
    exit;

唯一的缺点是我必须两次声明变量,一个在表单标记之前(因为错误出现在表单中),另一个在提交到数据库之前(为了满足条件),奇怪的是数字成功添加到数据库,但如果我在最后回显数字,它会显示为(1)!,为什么会这样?,还有更好的方法吗?

至于“if exists check”: mysqli_num_rows正在修复一个错误,在我开始工作之后,代码忽略了我关于空检查和零检查的规则并插入了没有重复数据库的任何内容!sry我没有代码我做了什么,我在愤怒的瞬间删除:)


我已经制作了一个表单来收集电话号码,我试图添加一些功能而且我失败了,可以使用你的帮助..

数据库提交的php代码如下:

<?php
$con = mysql_connect("localhost","root","PW");
if (!$con){
die('Could not connect: ' . mysql_error());
}

$number = mysql_escape_string($_POST['number']);

mysql_select_db("wa_phones", $con);
$sql="INSERT INTO phone (number)
VALUES 
('$number')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);
header("Location: done.html");

我需要在提交之前在数据库中添加重复的php检查,并检查空条目和检查不允许“0”作为最常见的数字...

我在这里和那里尝试了很多例子,但是我可以使用我已有的代码使用它

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

听起来你需要解决以下问题:

验证电话号码

if( ! strlen($number) ) {
    // Phone number is empty.
}
else if( substr($number,0,1) == "0" ) {
    // First digit of phone number is 0.
}

检查它是否已存在于数据库中

$phone_check_sql = "SELECT number FROM phone WHERE number = '$number'LIMIT 1";
$phone_check_result = mysql_query($phone_check_sql) || die("Some error: ".mysql_error());
if( mysql_num_rows($phone_check_result) != 0 ) {
    // Number already exists.
}

您可以在这些条件块中处理错误。