PHP由于空ID

时间:2018-08-17 09:14:56

标签: php mysqli

我想使用

将记录插入数据库

我有3个文件

  
      
  1. config.php(用于数据库连接)
  2.   
  3. function.php(用于CRUD的创建功能)
  4.   
  5. emp.php(听说我从functions.php调用了函数)
  6.   

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行的值计数不符

请在需要更改代码的地方帮助我。

2 个答案:

答案 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');