gpt4 book ai didi

php - PDO不会执行更新

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

我正在尝试使用 PDO 更新 mysql 中的一行来执行此操作,我不知道为什么它不执行。一切似乎都是正确的,但它没有执行,也没有产生任何错误。

首先我获取通过 $.ajax

发送的值
$idRequest = $_POST['idRequest'];
$dateStarted = $_POST['dateStarted'];
$requester = $_POST['requester'];
$quantity = $_POST['quantity'];
$qaauthorization = $_POST['qaauthorization'];
$qengineer = $_POST['qengineer'];
$performer = $_POST['performer'];
$voltage = $_POST['voltage'];
$goal = $_POST['goal'];
$measurementunit = $_POST['measurementunit'];
$account = $_POST['account'];
$centercost = $_POST['centercost'];
$ela = $_POST['ela'];
$it = $_POST['it'];
$testtype = $_POST['testtype'];
$brand = $_POST['brand'];
$model = $_POST['model'];
$part = $_POST['part'];
$objective = $_POST['objective'];
$production = $_POST['production'];
$reason = $_POST['reason'];
$specifications = $_POST['specifications'];


然后我创建查询

 $queryRQ = "UPDATE
request
SET
`idRequester` = ? , `idQEngineer` = ? , `RequestDate` = ? , `idModelNumber` = ?,`idPartDescription` = ? ,`idTestType` = ? , `ReasonForTesting` = ? ,
`Quantity` =?,`Goal` = ?,`idMeasurementUnit` = ?, `Voltage` = ?, `AccountNumber` = ?, `CenterCost` = ?, `ELA` = ?,`ITNumber` = ?, `idPerformer` = ?, `DateStarted` = NOW(), `DateCompleted` = NULL,
`Specifications` =?, `idObjective` = ?, `idProduction` = ?, `idBrand` = ?, `Available` = 1 , `Pending` = 0)
WHERE
idRequest = ?";

最后,当我准备执行$stmt时,似乎什么也没发生,并且不会生成任何错误< br/>

$reqVals = array($requester,$qengineer,$dateStarted,$model,$part,$testtype,$reason,
$quantity,$goal,$measurementunit,$voltage,$account,$centercost,$ela,$it,$performer,
$specifications,$objective,$production,$brand, /* WHERE */ $idRequest);
$stmtRQ = $pdo->prepare($queryRQ);
$stmtRQ->execute($reqVals);

我通过用 try - catch 包围所有内容来报告错误:

try{
// EVERYTHING
} catch(PDOException $e){
echo(json_encode($e->getMessage());
}

最佳答案

你有一个额外的 NULL 关键字,看起来不合适......

`DateStarted` = NOW(), NULL,
^^^^^

还有一个右括号看起来无效......

 `Pending` = 0)
^

为了发现这类事情,以特定方式格式化 SQL 语句(即使是更多行)会很有帮助...这是一个与您的语句等效的格式错误的 SQL 语句,它具有无关的 NULL 关键字,并且无与伦比的右括号:

UPDATE request
SET `idRequester` = ?
, `idQEngineer` = ?
, `RequestDate` = ?
, `idModelNumber` = ?
, `idPartDescription` = ?
, `idTestType` = ?
, `ReasonForTesting` = ?
, `Quantity` = ?
, `Goal` = ?
, `idMeasurementUnit` = ?
, `Voltage` = ?
, `AccountNumber` = ?
, `CenterCost` = ?
, `ELA` = ?
, `ITNumber` = ?
, `idPerformer` = ?
, `DateStarted` = NOW()
, NULL
, `Specifications` = ?
, `idObjective` = ?
, `idProduction` = ?
, `idBrand` = ?
, `Available` = 1
, `Pending` = 0
)
WHERE idRequest = ?

如果此 SQL 语句被发送到数据库,则数据库肯定会引发异常。更根本的问题是您的代码要么没有准备此语句,要么没有按照您期望的方式公开 SQL 异常。

关于php - PDO不会执行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11889854/

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