Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/07/2013, 17:21
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 10 meses
Puntos: 406
Respuesta: Error con $_POST

Así no se usa bind_param(), su uso correcto es así...

Código PHP:
Ver original
  1. $query = $mysqli->prepare('INSERT INTO miTabla VALUES (?,?,?)');
  2. $query->bind_param('iss',1,'titulo','cuerpo_mensaje');
  3. $query->execute();

Debes tener MUY presente el primer parámetro que se le pasa, el 'iss' este no es un parámetro cualquiera, le indica a mysqli de que tipo son las variables que se le pasan, la i es de int/entero, la s de strint/texto, y hay 1 por cada variable, así que si vas a insertar 7 variables del tipo string debes poner como primer parámetro 'sssss' como poner un ejemplo, por ultimo esto esta mal....

Código PHP:
Ver original
  1. $ins->bind_param(       $_POST['nombre'],
  2.                                     $d = $_POST['desc'],
  3.                                     $r = $_POST['rubro'],
  4.                                     $p = $_POST['provee'],
  5.                                     $c = $_POST['costo'],
  6.                                     $m = $_POST['mayoreo'],
  7.                                     $dt = $_POST['detalle']);

O usas la variable o usas el super array, no puedes asignar una valor a una variable dentro de una función, eso dará error...

Si tienes mas dudas visita el manual de PHP siempre que te atores! bind_param()

Actialización:

Cita:
Iniciado por KATHYU
La cosa es que segun he leido esta ultima forma es usando clases y haciendo el metodo _construct pero eso yo no lo estoy implementando, sera que debo usar la forma que puse en el primer post o no importa ???
Lo siento, lo lei ya que había enviado la respuesta, en efecto, es usando mysqli como objeto (clase), por lo tanto primero debes hacer un new mysql()...
Código PHP:
Ver original
  1. <?php
  2. $mysqli = new mysqli('host','user','pass','db');
  3. $query = $mysqli->prepare('INSERT INTO miTabla VALUES (?,?,?)');
  4. $query->bind_param('iss',1,'titulo','cuerpo_mensaje');
  5. $query->execute();

Aunque también puedes usar funciones por separado...
Código PHP:
Ver original
  1. $query = mysql_prepare('INSERT INTO miTabla VALUES (?,?,?)');
  2. mysqli_stmt_bind_param($query,'iss',1,'titulo','cuerpo_mensaje');

Pero en mi opinión es mejor usarlo como objeto (clase), tiene mas lógica y orden, pero solo es mi opinión...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 27/07/2013 a las 17:30