gpt4 book ai didi

php - 为什么我的代码会出现 PHP fatal error ?

转载 作者:行者123 更新时间:2023-12-02 21:29:59 24 4
gpt4 key购买 nike

我已经绞尽脑汁好几个小时了,试图找出为什么我的代码给我这个错误:

PHP Fatal error:  Call to a member function close() on a non-object in /var/www/Garage/ajaxFunctions/ServiceReplication.php on line 24

这是我的代码。它是我的应用程序中 AJAX 调用的后端:

<?php
/*
Description:
Parameters:
Return:
*/
include_once('../includes/config.inc.php');
include_once('../includes/dbConnection.php');

// $newTargetID = (isset($_GET['newTargetID']) && $_GET['newTargetID'] != '') ? strip_tags($_GET['newTargetID']) : null;
// $service = (isset($_GET['service']) && $_GET['service'] != '') ? strip_tags($_GET['service']) : null;

$newTargetID = "12988";
$service = "16468";

$returnValue = "0";

if($newTargetID != null && $service != null){
$ServiceReplicationQuery = "call ServiceReplication(" . $newTargetID . "," . $service . ")";
error_log("ServiceReplicationQuery: " . $ServiceReplicationQuery);
if($result = $dbConnection->query($ServiceReplicationQuery)){
error_log("Successfully replicated service " . $service . " to target " . $newTargetID . ".");
$returnValue = "1";
$result->close();
}
else{
error_log("Failure replicating service " . $service . " to target " . $newTargetID . ".");
}
}
else{
error_log("Failure replicating service " . $service . " to target " . $newTargetID . ".");
}

echo $returnValue;
?>

请注意,dbConnection.php 包含确实有一个有效且工作的 mysqli 数据库连接,并且我有其他与此几乎相同且完美工作的 AJAX 后端,唯一的区别是我使用的是存储过程一段代码。

我可以获取查询的 error_log echo,将其放入 MySQL Workbench,并且工作正常。事实上,即使我收到此错误,数据库也会更新。我只是收到此错误,但没有得到我需要的返回值,即“1”。

最佳答案

您错误地设置了一个变量,而不是在 if 语句中比较它:

if ($result = $dbConnection->query($ServiceReplicationQuery)) {

这将始终评估为 true。您得到的错误是因为您尝试对 $result 调用 close() 方法,当 $result 不是对象时,这是致命的。

将您的代码更新为此,而不是 $result->close():

$dbConnection->close();

或者,如果您确实想对 $result 调用 close:

$result = $dbConnection->query($ServiceReplicationQuery)
if ($result) {

或者这个:

$result = $dbConnection->query($ServiceReplicationQuery)
if (is_object($result)) {

取决于您想要实现的目标更合适。

关于php - 为什么我的代码会出现 PHP fatal error ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22543564/

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