【发布时间】:2014-07-20 13:19:35
【问题描述】:
编辑: 我把它弄起来并为空支票工作,号码不能从零支票开始 我是怎么做到的:
//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)!,这是为什么呢?有没有更好的方法来做到这一点?
关于“如果存在检查”: mysqli_num_rows 正在返回一个错误,在我让它工作之后,代码忽略了我关于空检查和零检查的规则,并在数据库中插入了任何不重复的内容!,对不起,我没有我所做的代码,我一生气就删除了:)
我制作了一个仅用于收集电话号码的表格,我尝试添加一些功能但失败了,可以请你帮忙..
数据库提交的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”作为初始数字...
我在这里和那里尝试了很多示例,但我无法使其与我已有的代码一起工作
感谢您的帮助
【问题讨论】:
-
您能告诉我们您已经尝试过什么,以及为什么它没有奏效吗?
-
“我在这里和那里尝试了很多示例,但我无法使用我已有的代码使其工作” - 哪个?我没有看到与检查重复项相关的代码。您可以使用
mysql_num_rows()或将您的列设置为UNIQUE -
不要使用 mysql_* 函数。请改用 mysqli 或 PDO。