Estoy tratando de insertar un valor en mi base de datos usando el siguiente código. Pero no ingresa el valor. Quiero depurar e imprimir cualquier mensaje de error que probé $stmt->error o $stmt->errorInfo() pero nada funcionó para mí.

$stmt = $this->conn->prepare("INSERT INTO users(name) values(?)");
$stmt->bind_param("s", "dhieaj");

$result = $stmt->execute();
echo $stmt->errorInfo();
$stmt->close();
// Check for successful insertion
if ($result){
    // User successfully inserted
    return USER_CREATED_SUCCESSFULLY;
}
1
TechChain 5 jul. 2017 a las 21:17

2 respuestas

La mejor respuesta

Intenté ejecutar el mismo código en mi servidor local de App Engine y estos fueron mis hallazgos:

Código original:

$stmt = $this->conn->prepare("INSERT INTO users(name) values(?)");
$stmt->bind_param("s", "dhieaj");

$result = $stmt->execute();
echo $stmt->errorInfo();
$stmt->close();
// Check for successful insertion
if ($result){
// User successfully inserted
    return USER_CREATED_SUCCESSFULLY;
}

Experimentos:

$stmt->bind_param("s", "dhieaj");  
// failed with error ( <b>Fatal error</b>:  Cannot pass parameter 2 by reference in <b>C:\...)

Así que modifiqué la línea a:

$param="dhieaj";
$stmt->bind_param("s", $param);

El siguiente error que obtuve fue para: echo $ stmt-> errorInfo (); // (Llamada al método indefinido mysqli_stmt :: errorInfo ()) así que comenté la línea.

Luego modifiqué su declaración de devolución para que se hiciera eco ya que la mía es solo un fragmento publicado por usted.

También noté que a tu conexión le faltaba la clave de declaración '$'. ($ conexión).

Código final:

$stmt = $conn->prepare("INSERT INTO users(firstname) values(?)");
$p="dhieaj";
$stmt->bind_param("s", $p);

$result = $stmt->execute();
// echo $stmt->errorInfo();
$stmt->close();
// Check for successful insertion
if ($result){
    // User successfully inserted
    echo "USER_CREATED_SUCCESSFULLY";
}
1
DLastCodeBender 5 jul. 2017 a las 19:02

En realidad, el código mencionado aquí por 'DLastCodeBender' es correcto, pero aún así no pude resolver mi problema. El problema es con el servidor MAMP . No pude ejecutar Slim framework con MAMP. Así que instalé XAMPP en mi mac y todas las API funcionaron para mí.

0
TechChain 9 jul. 2017 a las 14:48