gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:39:07 25 4
gpt4 key购买 nike

我有一个表 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com