我想使用
将记录插入数据库我有3个文件
- config.php(用于数据库连接)
- function.php(用于创建CRUD函数)
- emp.php(听我从functions.php调用函数)
1。 config.php文件
<?php
$servername = "localhost";
$username = "root";
$password = "";
// Create connection
$conn = mysqli_connect($servername, $username, $password) ;
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$db =mysqli_select_db($conn,"test");
?>
2。函数.php
<?php
include('config.php');
function addRecord($table,$columns,$val){
$insertQuery = "INSERT INTO ".$table." ($columns) VALUES('".$val."')";
return $insertQuery;
}
?>
3. emp.php
听到我从
addRecord
文件调用 function.php
函数以将记录添加到数据库中。
<?php
include('config.php');
include('function.php');
$columns= array('employee_name','employee_salary','employee_age');
$values =array('Jack','12000','15');
$val = "".implode("','", $values)."";
$col = "`".implode("`,`", $columns)."`";
addRecord('employee',$col,$val);
它给了我警告,因为我在
NULL
数组中传递了 $values
,因此在添加记录期间它会显示警告:Missing argument
Note
:id在DB中自动递增
当我打印查询时,它显示
INSERT INTO employee VALUES('Jack','12000','15');
我在
mysql
中使用了相同的查询,给出了error
#1136 - 列计数与第 1 行的值计数不匹配
请有人帮助我需要更改代码的地方。
你的功能有点不对劲。
function addRecord($table,$column,$values){
$insertQuery = "INSERT INTO ".$table." VALUES('".$values."')";
}
这不会返回任何内容,而且变量
$column
也从未被使用过。
我看不到你实际的 mysql 插入发生在哪里,但是由于该函数除了将字符串分配给变量之外不执行任何操作,因此它不能执行任何操作。
它给了我警告,因为我在 $values 数组中传递了 NULL,所以在添加记录期间它会显示
您将此函数称为
addRecord('employee',$val);
,如您所见,您正在将 $val
传递给 $column
应该在的位置,从函数中删除 $column
,该警告就会消失
还有
$columns= array('id', 'employee_name', 'employee_salary', 'employee_age');
$values = array(NULL, 'Jack', '12000', '15');
应该是
$columns = array('employee_name', 'employee_salary', 'employee_age');
$values = array('Jack', '12000', '15');
然后:
function addRecord($table,$values) {
return "INSERT INTO ".$table." VALUES('".$values."')";
}
$addQuery = addRecord('employee',$val);
并在您的陈述中使用
$addQuery
。
1136 - 列计数与第 1 行的值计数不匹配
这是因为您没有指定要插入哪些列,并且 MySQL 知道有 4 列,包括 ID,并且您为其指定了三个值。
您的查询应该是:
INSERT INTO employee (employee_name, employee_salary, employee_age)
VALUES ('Jack', '12000', '15');
改变:
$columns= array('id','employee_name','employee_salary','employee_age');
$values =array(NULL,'Jack','12000','15');
到
$columns= array('employee_name','employee_salary','employee_age');
$values =array('Jack','12000','15');