复制php函数
我的代码有问题。它总是重复输入。以下是我的功能:复制php函数,php,mysql,database,function,codeigniter,Php,Mysql,Database,Function,Codeigniter,我的代码有问题。它总是重复输入。以下是我的功能: public function insert() { $con=mysqli_connect("127.0.0.1","root","","dbms_project"); if (!$con) { die('Could not connect: ' . mysql_error()); } $sql="INSER
public function insert()
{
$con=mysqli_connect("127.0.0.1","root","","dbms_project");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$sql="INSERT INTO customers (First_Name,Last_Name,Address,Phone)
VALUES
('{$_POST['first_name']}','{$_POST['last_name']}','{$_POST['address']}','{$_POST['phone']}')";
mysqli_query($con, $sql);
if (!mysqli_query($con,$sql))
{
//redirect('home/customer');
}
$this->load->view('customer_view');
mysqli_close($con);
}
这是网站上的代码。我还尝试存储下一个值,将其用作customer_id的值:
//using insert function
<form action ="<?= site_url('home/insert')?>" class="formInsert" method="post">
<td><button class="btn btn-xs btn-primary btn-block" type="submit" value="Login">+</button></td>
<td>
//i'm trying to put the output and use it to be the value of the customer id
<?php $con=mysqli_connect("127.0.0.1","root","","dbms_project");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT max(Customer_ID) FROM customers");
$lastvalue = mysqli_fetch_row($result);
$resultlastvalue = $lastvalue[0] + 1;
echo " ". $resultlastvalue . " " ;?>
</td>
<td><input type="text" class="form-control" name="first_name" placeholder="First Name" required maxlength="40" autofocus /></td>
<td><input type="text" class="form-control" name="last_name" placeholder="Last Name" required maxlength="40" autofocus /></td>
<td><input type="text" class="form-control" name="address" placeholder="Address" required maxlength="40" autofocus /></td>
<td><input type="text" class="form-control" name="phone" placeholder="Phone" required maxlength="40" autofocus /></td>
</form>
//使用插入函数
这将始终在页面刷新时插入重复记录。你需要稍微改变一下逻辑
将名字、姓氏和电话输入3个变量
连接到数据库
使用SELECT查询检查这些是否存在
如果是,则不运行INSERT查询
如果没有,请插入
我们需要这样的东西
$select = " SELECT * FROM customers WHERE First_Name = '$_POST['first_name']' AND Last_Name = '$_POST['last_name']' AND Phone = '$_POST['phone']' ";
$query = mysqli_query($select);
if(mysqli_num_rows($query) > 0){
echo "User already exists";
}
else {
$sql="INSERT INTO customers (First_Name,Last_Name,Address,Phone)
VALUES ('{$_POST['first_name']}','{$_POST['last_name']}','{$_POST['address']}','{$_POST['phone']}')";
}
“它总是重复输入。”-哪一个?另外,您将MySQL API与MySQL\u error()
混合使用。“每次我刷新页面时,它都会复制复制的值!”-错误。。。我不明白。数据库中的输出或输入重复?我正要编辑它。不管怎样,每次我用这个链接刷新它,它都会复制更多。如何复制?它在数据库中插入重复的条目?您正在执行两次mysql\u查询($sql,$con)
。首先插入,然后插入的条件(如果
)。您有重复记录是正常现象。请在受影响的列上设置唯一约束。“$\u POST['first\u name']”
等将产生语法错误。它应该像OP现在拥有它一样“{$\u POST['first\u name']}”
等等,正如您在下面的插入中所拥有的那样。但是,使用此方法对SQL注入是开放的。我们只提供了逻辑(插入前检查)。你想为你写完整的代码吗?这不是我的问题。我是那个试图帮助和改进答案的人。“现在,这是行不通的。”弗雷德。谢谢你无缘无故地否决了我们。想象一下,如果我们对你的答案也这么做,你怎么知道这是我的反对票?但事实并非如此,所以不要这么说。拿回去。我不是这里唯一的人。我甚至告诉过你怎么做来修复它,而其他人看到了你的答案。看到我评论的投票了吗?我不能推翻我自己的评论。