我正在尝试更新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注入或解码
答案 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;)。