PHP를 사용하여 MySQL 데이터베이스에 배열 삽입
PHPPHP를 사용하여 MySQL 데이터베이스에 배열 삽입
내 데이터베이스에 저장하려는 다음 배열이 있습니다 ...
$insData = array(
'uid' => $fbme['id'],
'first_name' => $fbme['first_name'],
'last_name' => $fbme['last_name'],
'email' => isset($fbme['email']) ? $fbme['email'] : '',
'link' => $fbme['link'],
'affiliations' => $networks,
'birthday' => $info[0]['birthday_date'],
'current_location' => isset($fbme['location']['name']) ? $fbme['location']['name'] : '',
'education_history' => $education,
'work' => $workInfo,
'hometown_location' => isset($fbme['hometown']['name']) ? $fbme['hometown']['name'] : '',
'interests' => $info[0]['interests'],
'locale' => $info[0]['locale'],
'movies' => $movies,
'music' => $music,
'political' => $info[0]['political'],
'relationship_status' => $info[0]['relationship_status'],
'sex' => isset($fbme['gender']) ? $fbme['gender'] : '',
'tv' => $television,
'status' => '0',
'created' => $now,
'updated' => $now,
);
나는이 작업을 수행하는 방법에 대한 구글 검색 시도했는데 내 배열을 테이블에 삽입하기 전에 분할해야한다는 정보를 찾을 수 있습니다. 이 올바른지? naiquity, PHP에 아주 새로운 것을 유감스럽게 생각합니다.
해결법
-
==============================
1.mysql이 PHP 데이터 유형을 이해하지 못하기 때문에 mysql에 배열을 직접 삽입 할 수 없다. MySQL은 SQL 만 이해합니다. 따라서 mysql 데이터베이스에 배열을 삽입하려면 SQL 문으로 변환해야합니다. 이것은 수동으로 또는 라이브러리로 수행 할 수 있습니다. 출력은 INSERT 문이어야합니다.
mysql이 PHP 데이터 유형을 이해하지 못하기 때문에 mysql에 배열을 직접 삽입 할 수 없다. MySQL은 SQL 만 이해합니다. 따라서 mysql 데이터베이스에 배열을 삽입하려면 SQL 문으로 변환해야합니다. 이것은 수동으로 또는 라이브러리로 수행 할 수 있습니다. 출력은 INSERT 문이어야합니다.
다음은 표준 mysql insert 문이다.
INSERT INTO TABLE1(COLUMN1, COLUMN2, ....) VALUES (VALUE1, VALUE2..)
배열의 키에 표시된 열이있는 이름이 fbdata 인 테이블이있는 경우이 작은 스 니펫으로 삽입 할 수 있습니다. 배열이이 문으로 변환되는 방법은 다음과 같습니다.
$columns = implode(", ",array_keys($insData)); $escaped_values = array_map('mysql_real_escape_string', array_values($insData)); $values = implode(", ", $escaped_values); $sql = "INSERT INTO `fbdata`($columns) VALUES ($values)";
PHP7 업데이트
PHP 5.5부터 mysql_real_escape_string은 더 이상 사용되지 않으며 PHP7부터 제거되었습니다. 참조 : 새로운 절차에 대한 Php.net의 문서.
-
==============================
2.여러 가지 방법이 있습니다 ... 나는 준비된 문장을 사용하는 예를 보여 드리겠습니다.
여러 가지 방법이 있습니다 ... 나는 준비된 문장을 사용하는 예를 보여 드리겠습니다.
$prep = array(); foreach($insData as $k => $v ) { $prep[':'.$k] = $v; } $sth = $db->prepare("INSERT INTO table ( " . implode(', ',array_keys($insData)) . ") VALUES (" . implode(', ',array_keys($prep)) . ")"); $res = $sth->execute($prep);
나는 여기서 속이고 첫 번째 배열의 키가 SQL 테이블의 열 이름이라고 가정합니다. 또한 PDO를 사용할 수 있다고 가정합니다. 자세한 내용은 http://php.net/manual/en/book.pdo.php에서 확인할 수 있습니다.
-
==============================
3.여기에 허용 된 답변을 기반으로 내 전체 솔루션입니다. 사용 예 :
여기에 허용 된 답변을 기반으로 내 전체 솔루션입니다. 사용 예 :
include("./assets/php/db.php"); $data = array('field1' => 'data1', 'field2'=> 'data2'); insertArr("databaseName.tableName", $data);
<?PHP /** * Class to initiate a new MySQL connection based on $dbInfo settings found in dbSettings.php * * @example * $db = new database(); // Initiate a new database connection * mysql_close($db->get_link()); */ class database{ protected $databaseLink; function __construct(){ include "dbSettings.php"; $this->database = $dbInfo['host']; $this->mysql_user = $dbInfo['user']; $this->mysql_pass = $dbInfo['pass']; $this->openConnection(); return $this->get_link(); } function openConnection(){ $this->databaseLink = mysql_connect($this->database, $this->mysql_user, $this->mysql_pass); } function get_link(){ return $this->databaseLink; } } /** * Insert an associative array into a MySQL database * * @example * $data = array('field1' => 'data1', 'field2'=> 'data2'); * insertArr("databaseName.tableName", $data); */ function insertArr($tableName, $insData){ $db = new database(); $columns = implode(", ",array_keys($insData)); $escaped_values = array_map('mysql_real_escape_string', array_values($insData)); foreach ($escaped_values as $idx=>$data) $escaped_values[$idx] = "'".$data."'"; $values = implode(", ", $escaped_values); $query = "INSERT INTO $tableName ($columns) VALUES ($values)"; mysql_query($query) or die(mysql_error()); mysql_close($db->get_link()); } ?>
<?PHP $dbInfo = array( 'host' => "localhost", 'user' => "root", 'pass' => "password" ); ?>
-
==============================
4.배열을 직렬화하면 데이터베이스 열에 텍스트가 생겨 문제가 해결됩니다.
배열을 직렬화하면 데이터베이스 열에 텍스트가 생겨 문제가 해결됩니다.
예를 들어 객체를 저장하는 등의 작업을 수행하면 쉽게 검색 할 수 있습니다.
-
==============================
5.개인적으로 필자는 배열을 json_encode (이스케이프 처리 등을 고려하여)하고 전체 로트를 적절한 크기의 텍스트 / blob 필드로 이동시킵니다.
개인적으로 필자는 배열을 json_encode (이스케이프 처리 등을 고려하여)하고 전체 로트를 적절한 크기의 텍스트 / blob 필드로 이동시킵니다.
"구조화되지 않은"데이터는 저장하는 것이 매우 쉽지만 실제 PITA는 검색 / 색인을 통해 모든 유예로 저장됩니다.
간단한 json_decode가 데이터를 배열로 "폭발"시킵니다.
-
==============================
6.배열 데이터를 mysql PHP에 삽입하십시오.
배열 데이터를 mysql PHP에 삽입하십시오.
나는 배열 데이터를 가지고 .. 나는 그 데이터를 데이터베이스에 게시하고 싶다.
1 : 이것은 내 배열 데이터입니다.
stdClass Object ( [questions] => Array ( [0] => stdClass Object ( [question_id] => 54 [question] => Which%20of%20the%20following%20is%20a%20rational%20number%20(s)%3F%3Cbr%20%2F%3E%0D%0A%3Cbr%20%2F%3E [option_1] => %3Cimg%20align%3D%22middle%22%20%20%20src%3D%22formula%2F54%2F010779c34ce28fee25778247e127b82d.png%22%20alt%3D%22%22%20%2F%3E%3Cspan%20class%3D%22Apple-tab-span%22%20style%3D%22white-space%3A%20pre%3B%20%22%3E%09%3C%2Fspan%3E [option_2] => %26nbsp%3B%3Cimg%20align%3D%22middle%22%20%20%20src%3D%22formula%2F54%2F3af35a16c371ffaaf9ea6891fb732478.png%22%20alt%3D%22%22%20%2F%3E [option_3] => %26nbsp%3B%3Cimg%20align%3D%22middle%22%20%20%20src%3D%22formula%2F54%2F4a57d5766a79f0ddf659d63c7443982b.png%22%20alt%3D%22%22%20%2F%3E [option_4] => %26nbsp%3BAll%20the%20above%26nbsp%3B [iscorrect] => yes [answerGiven] => D [marksobtain] => 2 [timetaken] => 3 [difficulty_levelval] => 2 ) [1] => stdClass Object ( [question_id] => 58 [question] => %3Cdiv%3EIf%20A%20%26nbsp%3B%3A%20Every%20whole%20number%20is%20a%20natural%20number%20and%3C%2Fdiv%3E%0D%0A%3Cdiv%3E%26nbsp%3B%20%26nbsp%3BR%20%3A%200%20is%20not%20a%20natural%20number%2C%3C%2Fdiv%3E%0D%0A%3Cdiv%3EThen%20which%20of%20the%20following%20statement%20is%20true%3F%3C%2Fdiv%3E [option_1] => %26nbsp%3BA%20is%20False%20and%20R%20is%20true. [option_2] => A%20is%20True%20and%20R%20is%20the%20correct%20explanation%20of%20A [option_3] => %26nbsp%3BA%20is%20True%20and%20R%20is%20false [option_4] => %26nbsp%3BBoth%20A%20and%20R%20are%20True [iscorrect] => no [answerGiven] => D [marksobtain] => 0 [timetaken] => 2 [difficulty_levelval] => 2 ) ) )
해당 데이터를 삽입하는 데 사용되는 코드 :
코드 ::
<?php //require_once("config_new2012.php"); require("codelibrary/fb/facebook.php"); include("codelibrary/inc/variables.php"); include_once(INC."functions.php"); include_once(CLASSES."frontuser_class.php"); include_once(CLASSES."testdetails_class.php"); $data = file_get_contents('php://input'); $arr_data = explode("=",$data); $final_data = urldecode($arr_data[1]); $final_data2 = json_decode($final_data); //print_r ($final_data2); if(is_array($final_data2)){ echo 'i am in array '; $sql = "INSERT INTO p_user_test_details(question_id, question, option_1, option_2, option_3, option_4,iscorrect,answerGiven,marksobtain,timetaken,difficulty_levelval) values "; $valuesArr = array(); foreach($final_data2 as $row){ $question_id = (int) $row['question_id']; $question = mysql_real_escape_string( $row['question'] ); $option_1 = mysql_real_escape_string( $row['option_1'] ); $option_2 = mysql_real_escape_string( $row['option_2'] ); $option_3 = mysql_real_escape_string( $row['option_3'] ); $option_4 = mysql_real_escape_string( $row['option_4'] ); $iscorrect = mysql_real_escape_string( $row['iscorrect'] ); $answerGiven = mysql_real_escape_string( $row['answerGiven'] ); $marksobtain = mysql_real_escape_string( $row['marksobtain'] ); $timetaken = mysql_real_escape_string( $row['timetaken'] ); $difficulty_levelval = mysql_real_escape_string( $row['difficulty_levelval'] ); $valuesArr[] = "('$question_id', '$question', '$option_1','$option_2','$option_3','$option_4','$iscorrect','$answerGiven','$marksobtain','$timetaken','$difficulty_levelval')"; } $sql .= implode(',', $valuesArr); mysql_query($sql) or exit(mysql_error()); } else{ echo 'no one is there '; }
-
==============================
7.동일한 문제에 대해 검색하지만 배열을 튜플로 추가하지 않으려면 배열에 저장해야하므로 serialize () 및 unserialize () 함수가 필요할 수 있습니다.
동일한 문제에 대해 검색하지만 배열을 튜플로 추가하지 않으려면 배열에 저장해야하므로 serialize () 및 unserialize () 함수가 필요할 수 있습니다.
http://www.wpfasthelp.com/insert-php-array-into-mysql-database-table-row-field.htm을 참조하십시오.
-
==============================
8.
<?php function mysqli_insert_array($table, $data, $exclude = array()) { $con= mysqli_connect("localhost", "root","","test"); $fields = $values = array(); if( !is_array($exclude) ) $exclude = array($exclude); foreach( array_keys($data) as $key ) { if( !in_array($key, $exclude) ) { $fields[] = "`$key`"; $values[] = "'" . mysql_real_escape_string($data[$key]) . "'"; } } $fields = implode(",", $fields); $values = implode(",", $values); if( mysqli_query($con,"INSERT INTO `$table` ($fields) VALUES ($values)") ) { return array( "mysql_error" => false, "mysql_insert_id" => mysqli_insert_id($con), "mysql_affected_rows" => mysqli_affected_rows($con), "mysql_info" => mysqli_info($con) ); } else { return array( "mysql_error" => mysqli_error($con) ); } } $a['firstname']="abc"; $a['last name']="xyz"; $a['birthdate']="1993-09-12"; $a['profilepic']="img.jpg"; $a['gender']="male"; $a['email']="abc@hightecit.com"; $a['likechoclate']="Dm"; $a['status']="1"; $result=mysqli_insert_array('registration',$a,'abc'); if( $result['mysql_error'] ) { echo "Query Failed: " . $result['mysql_error']; } else { echo "Query Succeeded! <br />"; echo "<pre>"; print_r($result); echo "</pre>"; } ?>
-
==============================
9.어쩌면이 질문에 대해 복잡 할 수도 있지만 확실히 당신을 위해 일합니다. 배열 삽입뿐만 아니라 데이터베이스를 쿼리하고 파일을 업데이트하고 삭제하는 두 클래스를 만들었습니다. "MySqliConnection"클래스는 db 연결의 인스턴스를 하나만 만드는 데 사용됩니다 (새 개체의 중복을 방지하기 위해).
어쩌면이 질문에 대해 복잡 할 수도 있지만 확실히 당신을 위해 일합니다. 배열 삽입뿐만 아니라 데이터베이스를 쿼리하고 파일을 업데이트하고 삭제하는 두 클래스를 만들었습니다. "MySqliConnection"클래스는 db 연결의 인스턴스를 하나만 만드는 데 사용됩니다 (새 개체의 중복을 방지하기 위해).
<?php /** * * MySQLi database connection: only one connection is allowed */ class MySqliConnection{ public static $_instance; public $_connection; public function __construct($host, $user, $password, $database){ $this->_connection = new MySQLi($host, $user, $password, $database); if (isset($mysqli->connect_error)) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; echo $mysqli->host_info . "\n"; } } /* * Gets instance of connection to database * @return (MySqliConnection) Object */ public static function getInstance($host, $user, $password, $database){ if(!self::$_instance){ self::$_instance = new self($host, $user, $password, $database); //if no instance were created - new one will be initialize } return self::$_instance; //return already exsiting instance of the database connection } /* * Prevent database connection from bing copied while assignig the object to new wariable * @return (MySqliConnection) Object */ public function getConnection(){ return $this->_connection; } /* * Prevent database connection from bing copied/duplicated while assignig the object to new wariable * @return nothing */ function __clone(){ } } /*// CLASS USE EXAMPLE $db = MySqliConnection::getInstance('localhost', 'root', '', 'sandbox'); $mysqli = $db->getConnection(); $sql_query = 'SELECT * FROM users; $this->lastQuery = $sql_query; $result = $mysqli->query($sql_query); while($row = $result->fetch_array(MYSQLI_ASSOC)){ echo $row['ID']; } */
두 번째 "TableManager"클래스는 조금 더 복잡합니다. 또한 위에 게시 한 MySqliConnection 클래스를 사용합니다. 따라서 프로젝트에이 두 가지를 모두 포함해야합니다. TableManager를 사용하면 쉽게 삽입 및 업데이트 할 수 있습니다. 클래스에는 읽기 및 쓰기를위한 별도의 자리 표시자가 있습니다.
<?php /* * DEPENDENCIES: * include 'class.MySqliConnection.inc'; //custom class * */ class TableManager{ private $lastQuery; private $lastInsertId; private $tableName; private $tableIdName; private $columnNames = array(); private $lastResult = array(); private $curentRow = array(); private $newPost = array(); /* * Class constructor * [1] (string) $tableName // name of the table which you want to work with * [2] (string) $tableIdName // name of the ID field which will be used to delete and update records * @return void */ function __construct($tableName, $tableIdName){ $this->tableIdName = $tableIdName; $this->tableName = $tableName; $this->getColumnNames(); $this->curentRow = $this->columnNames; } public function getColumnNames(){ $sql_query = 'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = "'.$this->tableName.'"'; $mysqli = $this->connection(); $this->lastQuery = $sql_query; $result = $mysqli->query($sql_query); if (!$result) { throw new Exception("Database Error [{$this->database->errno}] {$this->database->error}"); } while($row = $result->fetch_array(MYSQLI_ASSOC)){ $this->columnNames[$row['COLUMN_NAME']] = null; } } /* * Used by a Constructor to set native parameters or virtual array curentRow of the class * [1] (array) $v * @return void */ function setRowValues($v){ if(!is_array($v)){ $this->curentRow = $v; return true; } foreach ($v as $a => $b) { $method = 'set'.ucfirst($a); if(is_callable(array($this, $method))){ //if method is callable use setSomeFunction($k, $v) to filter the value $this->$method($b); }else{ $this->curentRow[$a] = $b; } } } /* * Used by a constructor to set native parameters or virtual array curentRow of the class * [0] * @return void */ function __toString(){ var_dump($this); } /* * Query Database for information - Select column in table where column = somevalue * [1] (string) $column_name // name od a column * [2] (string) $quote_pos // searched value in a specified column * @return void */ public function getRow($column_name = false, $quote_post = false){ $mysqli = $this->connection(); $quote_post = $mysqli->real_escape_string($quote_post); $this->tableName = $mysqli->real_escape_string($this->tableName); $column_name = $mysqli->real_escape_string($column_name); if($this->tableName && $column_name && $quote_post){ $sql_query = 'SELECT * FROM '.$this->tableName.' WHERE '.$column_name.' = "'.$quote_post.'"'; $this->lastQuery = $sql_query; $result = $mysqli->query($sql_query); if (!$result) { throw new Exception("Database Error [{$this->database->errno}] {$this->database->error}"); } while($row = $result->fetch_array(MYSQLI_ASSOC)){ $this->lastResult[$row['ID']] = $row; $this->setRowValues($row); } } if($this->tableName && $column_name && !$quote_post){ $sql_query = 'SELECT '.$column_name.' FROM '.$this->tableName.''; $this->lastQuery = $sql_query; $result = $mysqli->query($sql_query); if (!$result) { throw new Exception("Database Error [{$this->database->errno}] {$this->database->error}"); } while($row = $result->fetch_array(MYSQLI_ASSOC)){ $this->lastResult[] = $row; $this->setRowValues($row); } } if($this->tableName && !$column_name && !$quote_post){ $sql_query = 'SELECT * FROM '.$this->tableName.''; $this->lastQuery = $sql_query; $result = $mysqli->query($sql_query); if (!$result) { throw new Exception("Database Error [{$this->database->errno}] {$this->database->error}"); } while($row = $result->fetch_array(MYSQLI_ASSOC)){ $this->lastResult[$row['ID']] = $row; $this->setRowValues($row); } } } /* * Connection class gets instance of db connection or if not exsist creats one * [0] * @return $mysqli */ private function connection(){ $this->lastResult = ""; $db = MySqliConnection::getInstance('localhost', 'root', '', 'sandbox'); $mysqli = $db->getConnection(); return $mysqli; } /* * ... * [1] (string) $getMe * @return void */ function __get($getMe){ if(isset($this->curentRow[$getMe])){ return $this->curentRow[$getMe]; }else{ throw new Exception("Error Processing Request - No such a property in (array) $this->curentRow", 1); } } /* * ... * [2] (string) $setMe, (string) $value * @return void */ function __set($setMe, $value){ $temp = array($setMe=>$value); $this->setRowValues($temp); } /* * Dumps the object * [0] * @return void */ function dump(){ echo "<hr>"; var_dump($this); echo "<hr>"; } /* * Sets Values for $this->newPost array which will be than inserted by insertNewPost() function * [1] (array) $newPost //array of avlue that will be inserted to $this->newPost * @return bolean */ public function setNewRow($arr){ if(!is_array($arr)){ $this->newPost = $arr; return false; } foreach ($arr as $k => $v) { if(array_key_exists($k, $this->columnNames)){ $method = 'set'.ucfirst($k); if(is_callable(array($this, $method))){ if($this->$method($v) == false){ //if something go wrong $this->newPost = array(); //empty the newPost array and return flase throw new Exception("There was a problem in setting up New Post parameters. [Cleaning array]", 1); } }else{ $this->newPost[$k] = $v; } }else{ $this->newPost = array(); //empty the newPost array and return flase throw new Exception("The column does not exsist in this table. [Cleaning array]", 1); } } } /* * Inserts new post held in $this->newPost * [0] * @return bolean */ public function insertNewRow(){ // check if is set, is array and is not null if(isset($this->newPost) && !is_null($this->newPost) && is_array($this->newPost)){ $mysqli = $this->connection(); $count_lenght_of_array = count($this->newPost); // preper insert query $sql_query = 'INSERT INTO '.$this->tableName.' ('; $i = 1; foreach ($this->newPost as $key => $value) { $sql_query .=$key; if ($i < $count_lenght_of_array) { $sql_query .=', '; } $i++; } $i = 1; $sql_query .=') VALUES ('; foreach ($this->newPost as $key => $value) { $sql_query .='"'.$value.'"'; if ($i < $count_lenght_of_array) { $sql_query .=', '; } $i++; } $sql_query .=')'; var_dump($sql_query); if($mysqli->query($sql_query)){ $this->lastInsertId = $mysqli->insert_id; $this->lastQuery = $sql_query; } $this->getInsertedPost($this->lastInsertId); } } /* * getInsertedPost function query the last inserted id and assigned it to the object. * [1] (integer) $id // last inserted id from insertNewRow fucntion * @return void */ private function getInsertedPost($id){ $mysqli = $this->connection(); $sql_query = 'SELECT * FROM '.$this->tableName.' WHERE '.$this->tableIdName.' = "'.$id.'"'; $result = $mysqli->query($sql_query); while($row = $result->fetch_array(MYSQLI_ASSOC)){ $this->lastResult[$row['ID']] = $row; $this->setRowValues($row); } } /* * getInsertedPost function query the last inserted id and assigned it to the object. * [0] * @return bolean // if deletion was successful return true */ public function deleteLastInsertedPost(){ $mysqli = $this->connection(); $sql_query = 'DELETE FROM '.$this->tableName.' WHERE '.$this->tableIdName.' = '.$this->lastInsertId.''; $result = $mysqli->query($sql_query); if($result){ $this->lastResult[$this->lastInsertId] = "deleted"; return true; }else{ throw new Exception("We could not delete last inserted row by ID [{$mysqli->errno}] {$mysqli->error}"); } var_dump($sql_query); } /* * deleteRow function delete the row with from a table based on a passed id * [1] (integer) $id // id of the table row to be delated * @return bolean // if deletion was successful return true */ public function deleteRow($id){ $mysqli = $this->connection(); $sql_query = 'DELETE FROM '.$this->tableName.' WHERE '.$this->tableIdName.' = '.$id.''; $result = $mysqli->query($sql_query); if($result){ $this->lastResult[$this->lastInsertId] = "deleted"; return true; }else{ return false; } var_dump($sql_query); } /* * deleteAllRows function deletes all rows from a table * [0] * @return bolean // if deletion was successful return true */ public function deleteAllRows(){ $mysqli = $this->connection(); $sql_query = 'DELETE FROM '.$this->tableName.''; $result = $mysqli->query($sql_query); if($result){ return true; }else{ return false; } } /* * updateRow function updates all values to object values in a row with id * [1] (integer) $id * @return bolean // if deletion was successful return true */ public function updateRow($update_where = false){ $id = $this->curentRow[$this->tableIdName]; $mysqli = $this->connection(); $updateMe = $this->curentRow; unset($updateMe[$this->tableIdName]); $count_lenght_of_array = count($updateMe); // preper insert query $sql_query = 'UPDATE '.$this->tableName.' SET '; $i = 1; foreach ($updateMe as $k => $v) { $sql_query .= $k.' = "'.$v.'"'; if ($i < $count_lenght_of_array) { $sql_query .=', '; } $i++; } if($update_where == false){ //update row only for this object id $sql_query .=' WHERE '.$this->tableIdName.' = '.$this->curentRow[$this->tableIdName].''; }else{ //add your custom update where query $sql_query .=' WHERE '.$update_where.''; } var_dump($sql_query); if($mysqli->query($sql_query)){ $this->lastQuery = $sql_query; } $result = $mysqli->query($sql_query); if($result){ return true; }else{ return false; } } } /*TO DO 1 insertPost(X, X) write function to isert data and in to database; 2 get better query system and display data from database; 3 write function that displays data of a object not databsae; object should be precise and alocate only one instance of the post at a time. // Updating the Posts to curent object $this->curentRow values ->updatePost(); // Deleting the curent post by ID // Add new row to database */ /* USE EXAMPLE $Post = new TableManager("post_table", "ID"); // New Object // Getting posts from the database based on pased in paramerters $Post->getRow('post_name', 'SOME POST TITLE WHICH IS IN DATABASE' ); $Post->getRow('post_name'); $Post->getRow(); MAGIC GET will read current object $this->curentRow parameter values by refering to its key as in a varible name echo $Post->ID. echo $Post->post_name; echo $Post->post_description; echo $Post->post_author; $Task = new TableManager("table_name", "table_ID_name"); // creating new TableManager object $addTask = array( //just an array [colum_name] => [values] 'task_name' => 'New Post', 'description' => 'New Description Post', 'person' => 'New Author', ); $Task->setNewRow($addTask); //preper new values for insertion to table $Task->getRow('ID', '12'); //load value from table to object $Task->insertNewRow(); //inserts new row $Task->dump(); //diplays object properities $Task->person = "John"; //magic __set() method will look for setPerson(x,y) method firs if non found will assign value as it is. $Task->description = "John Doe is a funny guy"; //magic __set() again $Task->task_name = "John chellange"; //magic __set() again $test = ($Task->updateRow("ID = 5")) ? "WORKS FINE" : "ERROR"; //update cutom row with object values echo $test; $test = ($Task->updateRow()) ? "WORKS FINE" : "ERROR"; //update curent data loaded in object echo $test; */
-
==============================
10.
$query= "INSERT INTO table ( " . implode(', ',array_keys($insData)) . ") VALUES (" . implode(', ',array_values($insData)) . ")";
배열을 데이터베이스에 삽입하려면이 행을 써야합니다.
implode ( ',', array_keys ($ insData)) : 모든 키를 문자열 형식으로 제공합니다.
implode ( ',', array_values ($ insData)) : 모든 값을 문자열 형식으로 제공합니다.
-
==============================
11.당신은 그것을하는 2 가지 방법이 있습니다 :
당신은 그것을하는 2 가지 방법이 있습니다 :
-
==============================
12.SQL Injection과 같은 질문에서 배워야 할 가장 중요한 것을 잊지 맙시다.
SQL Injection과 같은 질문에서 배워야 할 가장 중요한 것을 잊지 맙시다.
PDO와 준비된 진술을 사용하십시오.
PDO에 대한 자습서를 보려면 여기를 클릭하십시오.
-
==============================
13.최근에 저는 Wordpress를 배우고 있으며, WP_QUERY 클래스를 제공하여 데이터베이스를 운영합니다. 당신은 데이터베이스에 배열이나 객체를 삽입 할 수 있습니다. 나는 놀랍습니다. 그래서 그것을 달성하는 방법을 보러갑니다. 어쩌면 당신이 얻을 수있는 몇 가지 아이디어가 있습니다. 주요 기능은 apply_filters입니다.
최근에 저는 Wordpress를 배우고 있으며, WP_QUERY 클래스를 제공하여 데이터베이스를 운영합니다. 당신은 데이터베이스에 배열이나 객체를 삽입 할 수 있습니다. 나는 놀랍습니다. 그래서 그것을 달성하는 방법을 보러갑니다. 어쩌면 당신이 얻을 수있는 몇 가지 아이디어가 있습니다. 주요 기능은 apply_filters입니다.
apply_filters( $tag, $value, $key);
첫 번째 매개 변수를 무시하고 두 번째 매개 변수를 array로 처리 할 수 있습니다.이 함수는 배열을 문자열로 삭제합니다.
데이터베이스에 삽입 한 후 다음을 볼 수 있습니다.
key s:12:"focal_length";s:3:"190";s:3:"iso";s:3:"400";s:13:"shutter_speed";s:6:"0.0004";s:5:"title";s:0:"";}}
-
==============================
14.
function insertQuery($tableName,$cols,$values,$connection){ $numberOfColsAndValues = count($cols); $query = 'INSERT INTO '.$tableName.' ('.getColNames($cols,$numberOfColsAndValues).') VALUES ('.getColValues($values,$numberOfColsAndValues).')'; if(mysqli_query($connection, $query)) return true; else{ echo "Error: " . $query . "<br>" . mysqli_error($connection); return false; } } function getColNames($cols,$numberOfColsAndValues){ $result = ''; foreach($cols as $key => $val){ $result = $result.$val.', '; } return substr($result,0,strlen($result)-2); } function getColValues($values,$numberOfColsAndValues){ $result = ''; foreach($values as $key => $val){ $val = "'$val'"; $result = $result.$val.', '; } return substr($result,0,strlen($result)-2); }
from https://stackoverflow.com/questions/10054633/insert-array-into-mysql-database-with-php by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
PHP 치명적인 오류 : 클래스를 다시 선언 할 수 없습니다. (0) | 2018.09.18 |
---|---|
범위 내에서 고유 한 난수 생성 - PHP (0) | 2018.09.18 |
어떻게 PHP에서 문자열의 모든 순열을 생성 할 수 있습니까? (0) | 2018.09.18 |
JavaScript로 PHP 코드를 삽입하려면 어떻게해야합니까? (0) | 2018.09.18 |
PHP echo와 PHP return의 차이점은 무엇입니까? (0) | 2018.09.18 |