gpt4 book ai didi

php - SQL 请求不按预期工作

转载 作者:行者123 更新时间:2023-11-30 21:42:42 25 4
gpt4 key购买 nike

我有一个 PHP REST API,我做了这个函数来获得具有特定 idpro 或 idclient 的服务

 function getServices($request) {
require_once 'db.php';
$emp = json_decode($request->getBody());
$id = $request->getAttribute("id");
$sql = "select * FROM service WHERE idpro=:idpro OR idclient= :idclient ORDER BY date_debut DESC";

try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("idpro", $id);
$stmt->bindParam("idclient", $id);
$stmt->execute();
$wines = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;

return json_encode( $wines);

} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}

当我在 get 中使用 id=40 执行此函数时,我的数据库中有一行 idpro=40idclient=30 disered 结果但是当我用 id=30 执行它时我没有得到任何东西,我试图在 PHPMYADMIN 中执行这一行:select * FROM service WHERE idpro=30 OR idclient= 30 并且它按预期工作

最佳答案

$sql = "select * FROM service WHERE idpro=:idpro OR idclient=:idclient ORDER BY date_debut DESC";

您提到它与 idpro 一起使用并且它在参数和值之间没有空格,因此请尝试删除 idclient= :idclient 之间的空格以查看是否是问题所在。因为它在您执行该行时起作用,所以我假设它在语法上是如何调用的。

尝试使用一个参数作为值。像这样改变:

function getServices($request) {
require_once 'db.php';
$emp = json_decode($request->getBody());
$id = $request->getAttribute("id");
$sql = "select * FROM service WHERE idpro=:myID OR idclient= :myID ORDER BY date_debut DESC";

try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("myID", $id);
$stmt->execute();
$wines = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;

return json_encode( $wines);

} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}

关于php - SQL 请求不按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50860891/

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