php - UPDATE 语句向其他行添加空白

标签 php mysql pdo

我正在使用 PDO 在 PHP 上运行 UPDATE 语句。

这是我的表格:

<form method="post" class="form-style">

    <h3>ACTUALIZAR PRODUCTOS</h3>

    <div class="form-group">

        <label>Codigo del producto a actualizar:</label>
        <input type="text" class="form-control" name="code" />

        <label>Nombre producto:</label>
        <input type="text" class="form-control" name="nombre" />

        <label>Marca:</label>
        <input type="text" class="form-control" name="marca" />

        <label>Descripcion:</label>
        <textarea class="form-control" name="desc"></textarea>

    </div>                              
    <br />
    <button type="submit" class="btn btn-default" name="actualizar">Actualizar Producto</button>
</form>

这是代码:

<?php

$errores = array();
$nombre = $_POST['nombre'];
$marca = $_POST['marca'];
$descripcion = $_POST['desc'];
$codigo = $_POST['code'];

if(isset($_POST['actualizar'])) {

        if(empty($nombre)) {
            $nombre = null;
        }

        if(empty($marca)) {
            $marca = null;
        }

        if(empty($descripcion)) {
            $descripcion = null;
        }

        if(empty($codigo)) {
            $codigo = null;
        }


        $sentencia = $conn_db->prepare("UPDATE productos SET nombre = :nombre, marca = :marca, descripcion = :descripcion WHERE codigo = :codigo");
        $sentencia->bindParam(':nombre', $nombre, PDO::PARAM_STR);
        $sentencia->bindParam(':marca', $marca, PDO::PARAM_STR);
        $sentencia->bindParam(':descripcion', $descripcion, PDO::PARAM_STR);
        $sentencia->bindParam(':codigo', $codigo, PDO::PARAM_STR);
        $sentencia -> execute();

        echo "Producto actualizado con exito.";
        exit();

} 
?>

问题是,每当我只想更改产品中的 1 行时,它就会向其他行添加空白。例如,我只想更新产品的“名称”,我在表单上写下新名称,当我点击提交时,该名称在数据库中发生更改,但其他行也设置为空白。

关于如何解决这个问题有什么想法吗?还在学习PHP。谢谢。

最佳答案

通常的方法是使用现有数据填充表单字段。这将使您的操作成为真正的编辑,因为人们将能够修复描述中的一个字母,而不是从头开始重写。

因此,在显示表单之前,请从数据库中选择相应的行,然后填写 value具有实际值的属性(不要忘记首先使用 htmlspecialchars() 处理它们)。

这样提交后所有内容都会更新。

关于php - UPDATE 语句向其他行添加空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35319257/

相关文章:

php - 预订查询不考虑到达和出发日期

mysql当年与当年+6个月

java - 在 hibernate 事务中创建一个简单的 jdbc 事务

php - 使用 cURL php 抓取图像

php - 在 Twig 中,检查数组的特定键是否存在

javascript - 如何使用javascript或php获取访问者或用户的IP地址,ISP,县和城市?

php - 为什么 Propel 创建函数来检索一些关系对象,而不是全部?

php - 无法从数据库检索图像

php - 使用 PHP 创建购物篮

php - 在函数 pdo 中输入数组