无法更新sql值

时间:2018-03-04 06:10:02

标签: php mysql

我正在尝试更新mysql数据库上的值,但我无法做到,我从表中成功接收数据,但在更新时它显示“连接错误”我不知道我在做什么丢失

Panel.php

            <?php
        require_once 'funciones/mysql.php';

        $lista = $conexion->query("SELECT id, Nombre, apellidoPaterno FROM bomberos");

        if ($lista->num_rows > 0) {

            while ($row = $lista->fetch_assoc()) {
                echo "id: " . $row["id"] . " - Name: " . $row["Nombre"] . " " . $row["apellidoPaterno"] . "<br>";
                ?>
                <table class="table table-bordered">
                    <tr>
                        <td>
                            <img src='images/bomberos/<?php echo $row['id']; ?>.jpg' height="10%" width="10%" style="opacity: 0.5;"/><br /><?php echo $row['Nombre'] . " " . $row["apellidoPaterno"]; ?>
                            <br />
                            <div class="icon-container">
                                <form method="post" action="funciones/disponible.php">
                                    <input type="hidden" name="idBombero" value="<?php echo $row['id']; ?>">
                                    <button type="submit"></button>
                                </form>
                            </div>
                        </td>
                    </tr>
                </table>
                <?php
            }
        } else {
            echo "0 Resultados";
        }
        $conexion->close();
        ?>

mysql.php

    <?php
//Datos de la conexion
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$basedatos = "sidesp";
//crear conexion
$conexion = new mysqli($servidor, $usuario, $contraseña, $basedatos);
//revisar conexion
if ($conexion->connect_error) {
    die("conexion fallida: " . $conexion->connect_error);
}
?>

disponible.php

<?php
require_once 'mysql.php';
$consulta = "UPDATE 'estados' SET 'estado'='1' WHERE 'id'='".$_REQUEST['idBombero']."'";
if ($conexion->query($consulta) === true) {
    return "Exito!";
}else{
    return "Fallo!";
}

和...什么是保护所有这些的最佳方法?,我的意思是反sql注入或解码

2 个答案:

答案 0 :(得分:0)

你应该使用反引号逃脱。你也应该使用准备好的陈述

$consulta = "UPDATE `estados` SET `estado` = '1' WHERE `id` = ?";   
$result = $conexion->prepare($consulta);
$result->bind_param('i',$_REQUEST['idBombero']);
echo $result->execute() === true ? 'Success' : 'Failed: '.$conexion->error;

答案 1 :(得分:0)

尝试在disponible.php中简化更新查询

$idBombero = $_REQUEST['idBombero'];
$consulta = mysqli_query($conexion,"UPDATE `estados` SET `estado`='1' WHERE `id`='$idBombero'");

有时,多次单引号和双qoutes嵌套导致无效的查询和语法错误。我总是建议在mysqli中使用(fieldname)字段名称而不是(&#39; fieldname&#39;)。

希望这对你有所帮助。如果有,请告诉我。