【发布时间】:2016-04-05 05:10:35
【问题描述】:
如何使用 php 检查表单上的重复条目?我的前端是 c#windows 应用程序
我正在使用 c# 和 php 文件向数据库添加一个新用户。
我创建了以下内容:
我的 C# 项目(form1):
c# 编码:
private void btncreate_Click(object sender, EventArgs e)
{
var request = (HttpWebRequest)WebRequest.Create("http://***.**.***.***/response.php");
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
using (var stream = request.GetRequestStream())
{
var buffer = Encoding.UTF8.GetBytes("userid= " + txtUserid.Text + " & password=" + txtConformpassword.Text + " & first_name=" + txtFirstname.Text + " & last_name=" + txtLastName.Text + "& role= " + cmbRole.Text + "& active=" + cmbActive.Text + "");
stream.Write(buffer, 0, buffer.Length);
}
var response = (HttpWebResponse)request.GetResponse();
string result = String.Empty;
using (var reader = new StreamReader(response.GetResponseStream()))
{
result = reader.ReadToEnd();
}
txtMessage.Text = result;
}
我的 PHP 文件:response.php
<?php
$uid = $_POST['userid'];
$pass = $_POST['password'];
$fname = $_POST['first_name'];
$lname = $_POST['last_name'];
$rol = $_POST['role'];
$act = $_POST['active'];
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql= "INSERT INTO aster(userid,password,first_name,last_name,role,active)
VALUES('$uid', '$pass', '$fname','$lname','$rol','$act');";
if ($conn->query($sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
它成功添加数据,但是当我在文本框中输入相同的用户 ID 并单击创建按钮时,我需要在 txtmessage 中收到一条错误消息,因为 用户 ID 已存在。
我通过谷歌搜索,但我没有得到任何关于重复条目的信息,请参考我一些编码
【问题讨论】:
-
大部分时候userid字段是唯一键,如果重复,那么mysql会返回错误。为避免这种情况,首先尝试使用您尝试插入的用户 ID 获取所有记录。如果你得到 0 结果,那么你就可以了。没有重复。否则,返回用户可读错误并且不执行插入查询...
-
@JTheDev 感谢您的宝贵命令
-
@Arthi 检查您的邮件。