繁体   English   中英

stmt-> bind_params动态吗? 的PHP

[英]stmt->bind_params dynamically? 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'=>'me@myemail.com','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();

  }


}

尝试类似

$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...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM