gpt4 book ai didi

php mysql 数据没有出现在表中

转载 作者:行者123 更新时间:2023-11-29 08:49:09 26 4
gpt4 key购买 nike

目前,我正在文本框中提交两个“WS_ID”数字,两个数字之间有一个空格。我所拥有的 SQL 命令能够更新 sql 数据库中的两个结果,但是当文本框中只有一个“WS_ID”提交时,则不会更新任何内容。任何帮助都会很棒。非常感谢。

         if(isset($_GET["Update"]))
{ $DEP_TIME = $_GET["DEP_TIME"];
$ARR_TIME = $_GET["ARR_TIME"];
$TRAVEL_TIME = $_GET["TRAVEL_TIME"];
$HRS_WORKED = $_GET["HRS_WORKED"];
$INC_DEP_TIME = $_GET["INC_DEP_TIME"];
$INC_LAB_DAY = $_GET["INC_LAB_DAY"];
$LAB_DATE = $_GET["LAB_DATE"];
$WS_ID = $_GET["WS_ID"];
$WS_ID2 = explode(" ", $WS_ID);
$SQL = "UPDATE `elecsys`.`worksheet_labour` SET DEP_TIME = $DEP_TIME, ARR_TIME = $ARR_TIME, TRAVEL_TIME = $TRAVEL_TIME, HRS_WORKED = $HRS_WORKED WHERE WS_ID = $WS_ID2[0] OR WS_ID = $WS_ID2[1]";
$resultset2 = mysql_query($SQL);
}

最佳答案

在您的 sql 中,您可能需要在当前值周围加上引号。然而,目前您正遭受 SQL 注入(inject)。您应该使用 PDO 或 MYSQLI 来避免这种情况。

$WS_ID2[1] 为空时,您会得到 WHERE WS_ID=value OR WS_ID = ; 我不相信 MYSQL 知道它应该是空白的报价。

使用 MYSQLI 进行代码,以防止 SQL 注入(inject)以及从 PHP 中删除已弃用的代码后代码失败:

$con = new mysqli($databasehost,$dbuser,$dbpassword);
if ($con->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
//Set all your variables here, omitted from code...
$stmt = $con->prepare("UPDATE `elecsys`.`worksheet_labour` SET DEP_TIME = ?, ARR_TIME = ?, TRAVEL_TIME = ?, HOURS_WORKED = ?, WHERE WS_ID = ? OR WS_ID = ?");
//bind using data according to http://www.php.net/manual/en/mysqli-stmt.bind-param.php
$stmt->bind_param('ssddii', $DEP_TIME, $ARR_TIME, $TRAVEL_TIME, $HRS_WORKED, $WS_ID2[0], $WS_ID2[1]);
$stmt->execute();
$stmt->close();
$con->close();

另外,我的另一个想法是,如果 $WS_ID2 只有一个值,PHP 不会给出 $WS_ID[1] 越界错误吗?

关于php mysql 数据没有出现在表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11778208/

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