php - 使用更新表集使用 PHP 更新表失败

标签 php mysql

我有一个表 buildtracker 连接到一个表单。我正在尝试编辑特定行中的数据,因此更新该行。

该表由以下列组成:ID key、EnteredBy、INI

$user = 'root';
$pass = '';
$db = 'cl_db';
$conn = new mysqli('localhost', $user, $pass, $db) or die("Something bad happened.");

$rowID = $conn->real_escape_string($_POST['ID']);
$enteredBy    = $conn->real_escape_string($_POST['enteredBy']); 
$ini   = $conn->real_escape_string($_POST['ini']);

$query   = "UPDATE buildtracker SET 
          EnteredBy = '$enteredBy', INI = '$ini'
          WHERE ID = '$rowID' ";

$success = $conn->query($query); //insertion above ^ is the column names

if (!$success) {
    die("Couldn't enter data: ".$conn->error);
    }
return $query;

我在表格上没有收到任何新数据或更新。我可以做些什么来改进它?

谢谢!

最佳答案

我不知道这段代码在您的应用程序中的什么上下文中。

但[强烈]建议使用准备好的语句来防止任何 SQL 注入(inject)攻击,尤其是使用来自 $_POST 的直接数据(可以清理)。

检查查询是否在准备好的语句中执行是通过$stmt->execute() .

$user = 'root';
$pass = '';
$db = 'cl_db';
$conn = new mysqli('localhost', $user, $pass, $db) or die("Something bad happened.");
$prepare_query = "UPDATE buildtracker SET EnteredBy=?, INI=? WHERE ID=?";
$success = $conn->query($prepare_query); //insertion above ^ is the column names
if ($stmt = $conn->prepare($query)) {

    // Possible data sanitation can be done below
    $rowID = ($_POST['ID']);
    $enteredBy = ($_POST['enteredBy']); 
    $ini = ($_POST['ini']);

    // bind parameters
    $stmt->bind_param('ssi', $enteredBy, $ini, $rowID);

    // CHECKING is here: execute query (or die)
    // Can check also for ($stmt->affected_rows > 0)
    if (!$stmt->execute()){
        die("Couldn't enter data: ".$conn->error);
    }

    return $query;
}

并使用 PDO而不是 MySQLi可能会更好地推荐。

关于php - 使用更新表集使用 PHP 更新表失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47332690/

相关文章:

php - 在 WooCommerce 感谢页面上添加产品 ID 和订单号作为查询字符串

mysql - 如何向此查询添加 If Else End If

mysql - 将数据从一个单元格复制到另一个单元格 - MySQL

mysql - 如何在大连接 Mysql 查询中使用 where 子句来限制结果?

PHP 和 MySQL。查看主题日期

php - 如何在 woocommerce 中获取应用的优惠券金额?

php - 使用 PDO 持久连接时,MySql 进程似乎卡住了

php - 如何构建此代码片段以存储 MySQL 中列 "publicationDate"的日期和时间,同时添加另一列 "editedDate"?

php - 我需要帮助获取用户组代码,然后使用 PHP 和 MySQL 显示这些组的帖子

php - PHP登录验证之间有区别吗