我遇到的问题是,我通过一个函数传递的查询复制了我的行。以前,我没有使用语句->execute(array()),而是让param\u str处理每个值。然而,它开始给我带来麻烦。这是复制行的代码。
static public function mdlIngresarUsuario($datos){
$statement = Conexion::conectar()->prepare("INSERT INTO usuarios (id, nombre, usuario, password, rol, estado) VALUES (null, :nombre, :usuario, :password, :rol, :estado)");
$statement->execute(array(
':nombre' => $datos['nombre'],
':usuario' => $datos['usuario'],
':password' => $datos['password'],
':rol' => $datos['rol'],
':estado' => 0
));
if ($statement->execute()) {
return "ok";
} else {
return "error";
}
}
2条答案
按热度按时间bqf10yzr1#
这是因为你打电话
$statement->execute
两次,一次在“创建”它的地方,一次在if语句中。您应该将第一个execute的值赋给一个变量,并在if语句中使用该变量,如:sirbozc52#
您将执行该语句两次:
然后在if语句的条件下:
只需记录第一个“execute”的返回,并将其用作条件: