PHP - solventar error Only variables should be passed by reference in

 
Vista:
Imágen de perfil de DANIEL ALEXANDER
Val: 28
Ha aumentado su posición en 161 puestos en PHP (en relación al último mes)
Gráfica de PHP

solventar error Only variables should be passed by reference in

Publicado por DANIEL ALEXANDER (13 intervenciones) el 25/06/2023 01:43:07
Screenshot_1
Buenas noches a todos , me gustaria que me ayudaran a solucionar este mensaje despues que el sistema envia los datos a la base de datos , los guarda y todo mas sin embargo , no he podido resolver este error, estoy trabajando con una plantilla que maneja el paradigma, vista, modelo y controlador.
codigo del controlador:
static public function ctrCrearUsuario()
{

if (isset($_POST["nuevaSolicitud"])) {

/*=============================================
GUARDAR DATOS EMPLEADO
=============================================*/
//se envian los valores de los campos al modelo
$tabla = "usuario";

$datos = array(
//"codigo" => $_POST["nuevaSolicitud"],
"apellido1" => $_POST["apellido1"],
"apellido2" => $_POST["apellido2"],
"nombre1" => $_POST["nombre1"],
"nombre2" => $_POST["nombre2"],
"ced_nacionalidad" => $_POST["cedNacionalidad"],
"cedula" => $_POST["cedula"]);

$respuesta = ModeloUsuario::mdlUsuario($tabla, $datos); //creo que ese error viene por aquí pero no se como resolverlo




echo '<script>

localStorage.removeItem("rango");

swal({
type: "success",
title: "La Hoja de Vida ha sido guardada correctamente" ,
showConfirmButton: true,
confirmButtonText: "Cerrar"
}).then(function(result){



})

</script>';
// }

}

}


codigo del modelo base de datos
static public function mdlUsuario($tabla, $datos){

$conectar= Conexion::conectar();

$stmt = $conectar->prepare("INSERT INTO $tabla( apellido1, apellido2, nombre1, nombre2, nacionalidad, ci) VALUES (:apellido1, :apellido2, :nombre1, :nombre2, :ced_nacionalidad, :cedula)");

//$stmt->bindParam(":codigo", $datos["codigo"], PDO::PARAM_INT);;
$stmt->bindParam(":apellido1", strtoupper($datos["apellido1"]), PDO::PARAM_STR);
$stmt->bindParam(":apellido2", strtoupper($datos["apellido2"]), PDO::PARAM_STR);
$stmt->bindParam(":nombre1", strtoupper($datos["nombre1"]), PDO::PARAM_STR);
$stmt->bindParam(":nombre2", strtoupper($datos["nombre2"]), PDO::PARAM_STR);
$stmt->bindParam(":ced_nacionalidad", $datos["ced_nacionalidad"], PDO::PARAM_STR);
$stmt->bindParam(":cedula", $datos["cedula"], PDO::PARAM_STR);



if($stmt->execute()){

$codigo = $conectar->lastInsertId();

return $codigo;
}else{

return "error";

}

$stmt->close();
$stmt = null;

}
me he metido en esta pagina:
https://vijayasankarn-wordpress-com.translate.goog/2017/08/28/php-only-variables-should-be-passed-by-reference/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es-419&_x_tr_pto=sc
y he visto este video:
https://www.youtube.com/watch?v=sphrATt8_P0
mas sin embargo no entiendo todavia como solventar este error. Espero sus respuestas y muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

solventar error Only variables should be passed by reference in

Publicado por Alejandro (839 intervenciones) el 26/06/2023 23:11:28
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
No pusiste las etiquetas de código para ver cuales son las lineas implicadas 50, 51, 52 y 53
El mensaje dice Solo las variables deberían pasar por referencia por lo que asumo que serían estas
1
2
3
4
$stmt->bindParam(":apellido1", strtoupper($datos["apellido1"]), PDO::PARAM_STR);
$stmt->bindParam(":apellido2", strtoupper($datos["apellido2"]), PDO::PARAM_STR);
$stmt->bindParam(":nombre1", strtoupper($datos["nombre1"]), PDO::PARAM_STR);
$stmt->bindParam(":nombre2", strtoupper($datos["nombre2"]), PDO::PARAM_STR);

Me parece que debería ser algo como
1
2
$apellido1 = strtoupper($datos["apellido1"]);
$stmt->bindParam(":apellido1", $apellido1), PDO::PARAM_STR);

o en su lugar bindValue()
1
$stmt->bindValue(":apellido2", strtoupper($datos["apellido2"]), PDO::PARAM_STR);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de DANIEL ALEXANDER
Val: 28
Ha aumentado su posición en 161 puestos en PHP (en relación al último mes)
Gráfica de PHP

solventar error Only variables should be passed by reference in

Publicado por DANIEL ALEXANDER (13 intervenciones) el 01/07/2023 01:41:49
Excelente me ayudaron ambas solucones muchas gracias, problema resuelto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar