我想使用
将记录插入数据库我有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。 function.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是数据库中的自动增量
我打印查询时显示
INSERT INTO employee VALUES('Jack','12000','15');
我在mysql
中使用了相同的查询,并赋予了error
#1136 -列数与第1行的值计数不符
请在需要更改代码的地方帮助我。
答案 0 :(得分:1)
您的功能略有关闭。
function addRecord($table,$coloumn,$values){
$insertQuery = "INSERT INTO ".$table." VALUES('".$values."')";
}
这不返回任何内容,而且变量$coloumn
从未使用过。
我看不到实际的mysql插入发生在哪里,但是由于该函数除了将字符串分配给变量之外不执行任何操作,因此无法执行任何操作。
It's given me warning because of i passed NULL in $values array so during add record it's display
您将这个函数称为addRecord('employee',$val);
,如您所见,您正在传递$val
所在的$coloumn
,从函数中删除$coloumn
,警告将消失
也
$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');
答案 1 :(得分:0)
更改:
$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');