How to update with Functions

0
    function actualizarMateriales($materiales,$descripcion,$cantidad,$precio,$total)
    {
        require('../configuracion/conexion.php');
        $conexion = conectarse();
        $sql = "UPDATE materiales SET materiales='$materiales', descripcion='$descripcion', cantidad='$cantidad', precio='$precio', total='$total' WHERE id='$id' ";

     if ($conexion->query($sql) ) {
            return true;
        }else{
            return false;
        }

    }
// }
// $inst = new logicaMaterialUpdateModel();
if (actualizarMateriales('a','a','3','2','2','4') ) {
    echo "SE Actualizo";
}else{
    echo "No se Actualizo";
}
    
asked by Gamez 28.06.2017 в 01:58
source

1 answer

2

La primera regla es

Use prepared queries if you do not want to take the unpleasant surprise of having a SQL injection .

I. Example of UPDATE with PDO

Watch a demo working

We assume that in $pdo you have a valid connection to the database.

function actualizarMateriales ($materiales,$descripcion,$cantidad,$precio,$total)
{

    $sql = "UPDATE materiales SET 
                   materiales=:materiales, 
                   descripcion=:descripcion,
                   cantidad=:cantidad, 
                   precio=:precio, 
                   total=:total
            WHERE id=:id";
    $stmt = $pdo->prepare($sql);

    $stmt->bindValue(":materiales",$materiales);
    $stmt->bindValue(":descripcion",$descripcion);
    $stmt->bindValue(":cantidad",$cantidad);
    $stmt->bindValue(":precio",$precio);
    $stmt->bindValue(":total",$total);
    $stmt->bindValue(":id",$id);


    if ($stmt ->execute())
    {
        // echo "Se actualizaron ".$stmt->rowCount()." registros";
        return $stmt->rowCount();
    }
    else 
    {
        //echo "Los registros no se  actualizaron";
        return null;
    }

    $pdo = null;
}

II. Ejemplo de UPDATE con MySQLi

Watch a demo working

We will assume that in the variable $mysqli you have a valid connection to your database:

function actualizarMateriales ($materiales,$descripcion,$cantidad,$precio,$total)
{
    /*
        * Las consultas preparadas sustituyen los valores reales
        * por signos de interrogación en MySQLi
    */

    $sql = "UPDATE materiales SET 
                   materiales=?, 
                   descripcion=?,
                   cantidad=?, 
                   precio=?, 
                   total=?
            WHERE id=?";

    /*
        * Preparar la consulta
    */

    $stmt=$mysqli->prepare($sql);

    /* Evaluar si  la preparación tuvo  éxito */
    if ($stmt)
    {
         /*
           * Pasar parámetros separados  de la instrucción SQL
           * la letras "ss" indican el tipo de cada dato que se va a insertar
           * s: String, si es una cadena , i: Integer, si fuera un entero, etc
           * Ejecutar
        */

        $stmt->bind_param("ssiiiii", $materiales,$descripcion,$cantidad,$precio,$total);
        if ($stmt->execute()) 
        {      
            /*
              * Imprimir la cantidad de filas insertadas usando affected_rows
              * O devolver ese valor
            */

            //printf("%d Fila(s) actualizada(s).\n", $stmt->affected_rows);
            return $stmt->affected_rows;
        }
        else 
        {
            //echo "No se pudo actualizar";
            return null;
        }
    /*
     * Cerrar $stmt y luego la conexión
     * para liberar recursos
    */

    $stmt->close();



    }
    else 
    {
        echo "Hubo un error preparando la consulta";
    }

    $mysqli->close();
}

III. Example of use of any of the two

$actualizados=actualizarMateriales ($materiales,$descripcion,$cantidad,$precio,$total);
if ($actualizados)   
{
    echo "Se actualizaron: ".$actualizados." registros";
}
else
{
    echo "No se actualizó ningún registro";
}

Note

All the update code can be part of a class dedicated to managing the connection to the database, queries, which could be responsible for determining the type of query it is and returning appropriate messages such as numbers of records inserted (in the case of queries INSERT... , updated (for queries UPDATE ... , or arrangements with the data in the case of queries of type SELECT... .

    
answered by 28.06.2017 в 11:25