Вставка PHP с значениями массива, tablename

Я борюсь с инструкцией вставки 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); } 

Обратите внимание, что я совершенно новичок в кодировании. Какие-либо предложения?

попробуйте это, он отлично работает для меня. Вам просто нужно передать имя таблицы и ассоциативный массив, который имеет имя столбцов в качестве ключей.

 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); }