note 92283 modified in mysqli-stmt.bind-param by danbrown

From: Date: Fri, 17 Jul 2009 15:16:05 +0000
Subject: note 92283 modified in mysqli-stmt.bind-param by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-158418@lists.php.net to get a copy of this message
This might be helpful for someone. I made a class to manage the parameters Its used like this: <?php $stmt = $mysqli->prepare("CALL item_add(?, ?, ?, ?)"); $sp = new Statement_Parameter(); $sp->Add_Parameter('mydescription', Statement_Parameter_Type::$STATEMENT_TYPE_STRING); $sp->Add_Parameter('myean', Statement_Parameter_Type::$STATEMENT_TYPE_STRING); $sp->Add_Parameter('myprice', Statement_Parameter_Type::$STATEMENT_TYPE_DOUBLE); $sp->Add_Parameter('myactive', Statement_Parameter_Type::$STATEMENT_TYPE_INTEGER); // call this to bind the parameters $sp->Bind_Params($stmt); //you can then modify the values as you wish $sp->Set_Parameter('myactive',0); $sp->Set_Parameter('mydescription','whatever'); /* execute prepared statement */ $stmt->execute(); class Statement_Parameter { private $_array = array(); public function __constructor() { } public function Add_Parameter($name, $type, $value = NULL) { $this->_array[$name] = array("type" => $type, "value" => $value); } public function Get_Type_String() { $types = ""; foreach($this->_array as $name => $la) $types .= $la['type']; return $types; } public function Set_Parameter($name, $value) { if (isset($this->_array[$name])) { $this->_array[$name]["value"] = $value; return true; } return false; } public function Bind_Params(&$stmt) { $ar = Array(); $ar[] = $this->Get_Type_String(); foreach($this->_array as $name => $la) $ar[] = &$this->_array[$name]['value']; return call_user_func_array(array($stmt, 'bind_param'),$ar); } } class Statement_Parameter_Type { public static $STATEMENT_TYPE_INTEGER = 'i'; public static $STATEMENT_TYPE_DOUBLE = 'd'; public static $STATEMENT_TYPE_STRING = 's'; public static $STATEMENT_TYPE_BLOB = 'b'; } ?> --was-- This might be helpful for someone. I made a class to manage the parameters Its used like this: $stmt = $mysqli->prepare("CALL item_add(?, ?, ?, ?)"); $sp = new Statement_Parameter(); $sp->Add_Parameter('mydescription', Statement_Parameter_Type::$STATEMENT_TYPE_STRING); $sp->Add_Parameter('myean', Statement_Parameter_Type::$STATEMENT_TYPE_STRING); $sp->Add_Parameter('myprice', Statement_Parameter_Type::$STATEMENT_TYPE_DOUBLE); $sp->Add_Parameter('myactive', Statement_Parameter_Type::$STATEMENT_TYPE_INTEGER); // call this to bind the parameters $sp->Bind_Params($stmt); //you can then modify the values as you wish $sp->Set_Parameter('myactive',0); $sp->Set_Parameter('mydescription','whatever'); /* execute prepared statement */ $stmt->execute(); class Statement_Parameter { private $_array = array(); public function __constructor() { } public function Add_Parameter($name, $type, $value = NULL) { $this->_array[$name] = array("type" => $type, "value" => $value); } public function Get_Type_String() { $types = ""; foreach($this->_array as $name => $la) $types .= $la['type']; return $types; } public function Set_Parameter($name, $value) { if (isset($this->_array[$name])) { $this->_array[$name]["value"] = $value; return true; } return false; } public function Bind_Params(&$stmt) { $ar = Array(); $ar[] = $this->Get_Type_String(); foreach($this->_array as $name => $la) $ar[] = &$this->_array[$name]['value']; return call_user_func_array(array($stmt, 'bind_param'),$ar); } } class Statement_Parameter_Type { public static $STATEMENT_TYPE_INTEGER = 'i'; public static $STATEMENT_TYPE_DOUBLE = 'd'; public static $STATEMENT_TYPE_STRING = 's'; public static $STATEMENT_TYPE_BLOB = 'b'; } http://php.net/manual/en/mysqli-stmt.bind-param.php

« previous php.notes (#158418) next »