Php 无法更新sql值

Php 无法更新sql值,php,mysql,Php,Mysql,我正在尝试更新mysql数据库上的一个值,但我做不到,我成功地从表中接收到数据,但在更新时它会显示“连接错误”,我不知道我缺少了什么 Panel.php <?php require_once 'funciones/mysql.php'; $lista = $conexion->query("SELECT id, Nombre, apellidoPaterno FROM bomberos"); if ($lis

我正在尝试更新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);
}
?>
disposible.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!";
}
$idBombero = $_REQUEST['idBombero'];
$consulta = mysqli_query($conexion,"UPDATE `estados` SET `estado`='1' WHERE `id`='$idBombero'");

而且。。。保护所有这些的最佳方法是什么?我指的是反sql注入或解码

您应该使用backticks来转义。你也应该使用准备好的陈述

$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;

尝试在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!";
}
$idBombero = $_REQUEST['idBombero'];
$consulta = mysqli_query($conexion,"UPDATE `estados` SET `estado`='1' WHERE `id`='$idBombero'");
有时多次嵌套过多的单引号和双引号会导致无效查询和语法错误。我总是建议在mysqli中使用fieldname作为字段名,而不是“fieldname”


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

您真的没有使用密码吗?确切的错误消息是什么?我实际上只在本地使用,这就是为什么我没有使用密码并使用它工作的原因!!!谢谢