2010-08-11 4 views
1

이 작업에 어떻게 접근하는 것이 가장 좋을까요?stmt-> bind_params가 동적입니까? PHP

require_once('models/databaseModel.class.php'); 

class crudModel extends databaseModel{ 

    public function __construct(){ 
    parent::__construct(); 
    } 

    public static function create(&$data, $tbl){ 

    // TEST $data array 
    // $data = array('name'=>'philip','email'=>'[email protected]','age'=>28); 

    //This is how I would like $value1 
    // ":$name', ':$age', ':$email' "; 

    //This is how I would like $value2 
    // "ssi";  

    //MY TEST 
    $params = array(); 

    $results = array(); 

    foreach($data as $k => $v){ 
    if(is_string($v)){ 
    $params = 's'; 
    } 
    if(is_int($v)){ 
    $params = 'i'; 
    } 

    $results = array_fill(0, count($v), $params); 

    if(is_array($results)){ 
    $value2 = implode('', $results); 
    } 
    } 

    $sql = "INSERT INTO $tbl('".implode(',', array_keys($data))."')VALUES('".$value1."')"; 
    $stmt = $link->prepare($sql); 
    $stmt->bind_params($value2, $value1); 
    $stmt->execute(); 

    } 


} 
+2

이봐 같은 것을보십시오. 우리가 당신에게 무엇을하려고하는지, 어디에 문제가 발생했는지 설명해 주시면 아마 더 나을 것입니다. –

답변

0

$columns = implode(',', array_keys($data)); 
$values = array_values($data); 
$placeHolders = trim(str_repeat('?,', count($values)), ','); 
$sql = "INSERT INTO {$tbl}({$columns}) VALUES({$placeHolders})"; 
$stmt = $link->prepare($sql); 
$stmt->execute($values); 

// FETCH DATA...