statement sentencias prepared preparadas mysqli_stmt_execute mysqli_stmt_bind_result bind_param php mysql stored-procedures mysqli

sentencias - prepared statement php



¿Hay alguna manera de vincular una matriz a mysqli prepare (2)

Tienes que hacer algo como esto:

$params=array_merge( array($this->paramTypes), $this->paramValues ); call_user_func_array(array($stmt, ''bind_param''), $params);

dado que $this->paramTypes es una cadena en el formato requerido por mysqli_stmt::bind_param - si no, primero tiene que crear este parámetro de string .

No sé si out parámetros out o inout funcionan en este caso.

Intento crear una clase que ejecute cualquiera de una serie de procedimientos almacenados con cualquier cantidad de variables

Estoy usando php y mysqli

  • Mi clase enumera una matriz y construye una cadena en función del número de elementos, si corresponde
  • dando algo como esto CALL spTestLogin(?,?) por ejemplo
  • Ahora necesito vincular la entrada de mi matriz usando algo como esto:

    $ stmt-> bind_param ($ this-> paramTypes, $ this-> paramValues); // paramValues ​​es mi matriz

Entonces, si eso funciona, puedo trabajar para obtener mis resultados

Algunas ideas


mysqli_stmt::bind_param() tomará una cantidad variable de argumentos

Asumiendo que $this->paramTypes es también una matriz que contiene el tipo de letra correcto para cada variable (una de ''i'', ''d'', ''s'', ''b''), podrías hacer algo como

$params = $this->paramValues; array_unshift($params, implode($this->paramTypes)); call_user_func_array( array( $stmt, ''bind_param'' ), $params);

Esencialmente, usted crea una matriz de los parámetros que normalmente pasaría a bind_param () y luego realiza la llamada usando call_user_func_array()

Puede haber una manera mucho mejor de hacer esto

Editar : me acabo de dar cuenta de que me golpearon mientras escribía esto. Dejaré esta respuesta aquí por ahora en caso de que sea de interés.