php - 相同的数据节省了两次?
问题描述
嗨,我正在将数据插入数据库,它保存了两次相同的数据,只有用户名保存了两次我只想保存一次,我也想保存地址
<?php
$users = array("username"=>"Kaleem", "adrress"=>"abc");
class dbase{
public function dbinsert($table,$users)
{
foreach ($users as $key => $value)
{
$sql = "INSERT INTO $table (`$key`) VALUES ('$value')";
$this->conn->query($sql);
if($this->conn->query($sql))
{
echo "Data inserted";
}
}
}
public function __construct ()
{
$this->conn = new mysqli('localhost','root','','dbase');
if($this->conn)
{
echo "Connected<br>";
}
}
}
$obj = new dbase;
$obj->dbinsert('users',$users);
?>
解决方案
问题是您两次调用查询函数。
$this->conn->query($sql); // saves the first time
if($this->conn->query($sql)) // saves the second time
{
echo "Data inserted";
}
为避免查询被调用两次,您可以将查询结果保存到变量中并在 if 中检查它。
目前,您将 users 数组的每个字段保存在自己的数据集中,因为您正在从 foreach 循环中调用每个字段的查询函数。
尝试这个:
<?php
$users = array( // this array is for the users
array("username"=>"Kaleem", "adrress"=>"abc"), // this is one user
array("username"=>"Mickey Mouse", "adrress"=>"Test street"),
);
class dbase{
public function dbinsert($table,$users)
{
foreach ($users as $key => $value)
{
// Extract field names
$fields = implode("`, `", array_keys ( $users[$key] );
// Extract values
$values = implode("', '", array_values ( $users[$key] );
$sql = "INSERT INTO $table (`" . $fields . "`) VALUES ('". $values ."')";
// Check if query was succesfull
$success = $this->conn->query($sql);
if($success)
{
echo "Data inserted";
} else { // if no success display error message
echo "Error while saving";
}
}
}
public function __construct ()
{
$this->conn = new mysqli('localhost','root','','dbase');
if($this->conn)
{
echo "Connected<br>";
}
}
}
$obj = new dbase;
$obj->dbinsert('users',$users);
?>
推荐阅读
- hashicorp-vault - 续订过程中的增量不是icrement而是总TTL?
- dynamic-expresso - 如何将动态变量与匿名类型一起使用?
- visual-studio-2017 - 如何创建自己的 CUSTOM INSTALLER?
- php - 处理 PHP-FPM 和 PHP 文件设置的执行时间
- ios - 从子视图更改 UIViewController 中 UIVIew 的纵横比
- mysql - MySQL Workbench 不生成数据库
- java - Java 8 流 - 如何正确制作 NPE 安全流
- vue.js - Vue Router - 带参数的路由
- json - 如何使用 SwaggerValidator(com.atlassian.oai.validator) 在没有请求或响应的情况下验证简单的 JSON?
- mysql - 无法安装在 xampp phpmyadmin 中联合的插件