SHsoft-쇼핑몰창업, 무료쇼핑몰--PHP 게시판

본문 바로가기
PHP
개발자를 위한 온라인 커뮤니티  
HOME > PHP

 

PHP
[php 함수]mysql 테이블의 필드명과 배열의 key 값이 같은 것을 가져와 자동 인서트문 만들기
작성자 : 관리자
조회 : 26724
등록일 : 2016-12-05 (211.169.138.253) , 추천 : 0

[php 함수]mysql 테이블의 필드명과 배열의 key 값이 같은 것을 가져와 자동 인서트문 만들기

[php 함수]mysql 테이블의 필드명과 배열의 key 값이 같은 것을 가져와 자동 인서트문 만들기

 

 

 

// 디비 접속 정보

$hostname = "localhost";

$username = "username";

$database = "database"; 

$password = "password";

 

 

// 디비 커텍트

$connect = mysql_connect($hostname, $username, $password);

mysql_select_db($database, $connect);

 

 

// 테이블의 필드명과 배열의 key 값이 같은 것을 가져와 자동 인서트문 만들기

function insertTable($table, $data, $database){

$fields = get_table_fields($table, $database);

$data = array_keys_intersect($data, $fields);

if (!$table or !is_array($data)) return false;

$data = quote($data);

$columns implode(', ',array_keys($data));

$values implode("', '",array_values($data));

$sql = "INSERT INTO $table ($columns) VALUES ('$values')";

return $sql;

 

//$this->query($sql); // 디비 쿼리 실행

//return mysql_insert_id(); // 쿼리 실행 후 id 값 리터

}


 

// 테이블의 필드명을 배열로 돌려주는 함수*/

function get_table_fields($table, $database, $bFlag=GET_VALUE){

$result  = mysql_list_fields($database, $table);

$columns = mysql_num_fields($result);

for($i = 0; $i < $columns; $i++){

$name  = mysql_field_name($result, $i);

if($bFlag) $fields[] =  $name;

else $fields[$name] = "" ;

}

return $fields;

}

 

// 값을 홀따옴표로 묶어서 돌려주는 함수

function quote($value){

if(ini_get('magic_quotes_gpc')) return $value;

if(is_array($value)){

foreach ($value as $xkey=>$xvalue){

$value[$xkey] = str_replace("'","''",$xvalue);     

}

}else{

$value = str_replace("'","''",$value);

}

return $value;

}

 

// 배열1의 키값과 배열2값이 같은 경우 배열1만 배열로 돌려주는 함수

function array_keys_intersect($array, $keys) {

if(!is_array($keys)) return false;

foreach($keys as $value){

if(isset($array[$value])) $aTmp[$value] = $array[$value];

}

return $aTmp;

}

 

 

$data[board_no] = "3";

$data[board_id] = "10";

$data[filename] = "sample.jpg";

$table = "sh_board_file";

$result = insertTable($table, $data, $database);

 

echo $result;

?>

 

 

[ 출력 ]

INSERT INTO sh_board_file (board_no, board_id, filename) VALUES ('3', '10', 'sample.jpg') 

PHP 목록
이름 내용 등록일
댓글(comment)
* 표시가 있는 부분은 필수 입력 사항입니다.
PHP
*
*
비밀글
* 웹에디터 시작
상호 : 123 | 대표 : 윤상현 | 팩스 : 123-123-123 | 개인정보책임자 : =]]]]]
이메일 : ganja@gmail.com | 사업자 등록번호 : 125-40-00023 | 주소 : You Are HACKED BY Secundu =]]]]]]
Copyright © 2015 123 All rights reserved.