PHP插入数组值,tablename

时间:2015-12-07 16:09:42

标签: php mysql pdo crud

我正在努力使用PHP插入语句。我希望它使用array_keys($values)array_values($values)将数据插入数据库。

我试图找出如何做到这一点,到目前为止,我在插入中有这个代码,并且还包含了我的索引页面。我需要在不更改索引页面的情况下执行此操作,因为这是我必须完成的挑战。我已经分析了索引页面,需要以某种方式使函数与PHP插入命令一起将数据插入到我的数据库中。

我也想知道是否有办法将PDO连接包装成一个语句,我可以将其用于此函数和其他函数。

插入功能

  <?php
function insert(array $values, $tablename)
{

    //cosntruct sql statment 


    $sql = "INSERT INTO $tablename $values";

    //pick apart vaules 


   //this line fetches the result set and fetch assoc to prevent multiple rows beign fetched 
    $ResultSet = dbconnect()->query($sql); 

   //returns the results 
   return $ResultSet;



    //array keys and array vaules


    //connection 



    // checks results 








} 

?>

索引页面的一部分:

 if(isset($_POST['table']))
    {
        $tableName = $_POST['table'];
    }
    if(isset($_POST['insert']))
    {
        $values = array();
        $tableName = $_POST['tablename'];

        foreach($_POST as $key => $value)
        {
            if(!empty($value) && ($value != "Submit") && ($key != "insert") && ($key != "table") && ($key != "tablename"))
            {
                $values[$key] = $value;
            }
     } 
     $count = insert($values, $tableName);    
    }

请注意,我在编码方面很陌生。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

试试这个,它对我来说很好。您只需传递表的名称和一个关联数组,其中列的名称为键。

public function insert($table, $data)
{

    $query='INSERT INTO '.$table.' (';
    foreach($data as $key => $value)
    {
        $query .= $key.','; 
    }
    $query = substr($query, 0, -1);
    $query .= ') VALUES (';
    foreach($data as $key => $value)
    {
        $query .= ':'.$key.',';
    }
    $query = substr($query, 0, -1);
    $query .= ');';

    $insert = $this->db->prepare($query);
    $insert->execute($data);

}