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