ccc

mysqli: prepared-statements

En db_mysqli.inc.php crear:
// *****************************
  function prepare($query) {
  return mysqli_prepare($this->Conex_ID, $query);
  }
 
 
// ***************************
  function query($Query_String, $a_param_type, $a_bind_params) {
  $stmt = $this->prepare($Query_String);
  if($stmt === false) {
  trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->errno . ' ' . $conn->error, E_USER_ERROR);
  }
/* Bind parameters. Types: s = string, i = integer, d = double,  b = blob */
$a_params = array();
$param_type = '';
$n = count($a_param_type);
for($i = 0; $i < $n; $i++) {
$param_type .= $a_param_type[$i];
}
$a_params[] = & $param_type;
for($i = 0; $i < $n; $i++) {
  $a_params[] = & $a_bind_params[$i];
}
call_user_func_array(array($stmt, 'bind_param'), $a_params);
$stmt->execute();

$result = $stmt->get_result();

return $result;
  }

Ejemplo select normal:
require("db_mysql.inc.php");
require("db.php");
$db = new db;
$arrTipoBind = array("i");
$arrBind = array("6");

$sql = "select * from usuarios where id > ?";
$result = $db->query($sql, $arrTipoBind, $arrBind);

while($row = $result->fetch_assoc()) {
echo $row["id"].":".$row["nombre"].":".$row["email"].":".$row["webs"]."<br>";
}

Ejemplo select con comodín:
require("db_mysql.inc.php");
require("db.php");
$db = new db;

$arrTipoBind = array("s");
$arrBind = array("gmail.com");

$sql = "select * from usuarios where email LIKE CONCAT('%',?,'%') ";
$result = $db->query($sql, $arrTipoBind, $arrBind);

while($row = $result->fetch_assoc()) {
echo $row["nombre"].":".$row["email"]."<br>";
}

Ejemplo insert:
require("db_mysql.inc.php");
require("db.php");
$db = new db;

$arrTipoBind = array("s", "s", "i");
$arrBind = array("ocho", "ocho@gmail.com","88");
$sql = "insert into usuarios(nombre, email, webs) values (?,?,?)";
$result = $db->query($sql, $arrTipoBind, $arrBind);

Ejemplo update:
require("db_mysql.inc.php");
require("db.php");
$db = new db;

$arrTipoBind = array("i", "s");
$arrBind = array("99", "gmail.com");
$sql = "update usuarios set webs = ? where email LIKE CONCAT('%',?,'%')";
$result = $db->query($sql, $arrTipoBind, $arrBind);

Ejemplo delete:
require("db_mysql.inc.php");
require("db.php");
$db = new db;

$arrTipoBind = array("i");
$arrBind = array("12");
$sql = "delete from usuarios where id = ?";
$result = $db->query($sql, $arrTipoBind, $arrBind);

No hay comentarios:

Publicar un comentario