从 php 函数获取返回值

get returned value from php function

我的 ajax-call 发布了数据 loadingaid1 以及其他一些数据。然后在我的 php 文件中请求该值并将其分配给 $loadingaid1。到目前为止,一切都很好。 我知道要做的是调用函数 getProductId,它从我的数据库中选择相应的 ID,并用该 ID 覆盖变量 $loadingaid1

我试过的代码如下:

(...)
$loadingaid1 = $_REQUEST['loadingaid1'];
$loadingaid1 = getProductId($loadingaid1);
(...)

function getProductId($product) {
   $stmt = $conn->prepare('SELECT idproducts FROM products WHERE title = :product LIMIT 1');
   if ($stmt->execute(array(':product' => $product))) {
      $row = $stmt->fetch(PDO::FETCH_ASSOC);
      return $row['idproducts'];
   };
}

但是不知何故,一旦我将函数引入游戏,代码总是失败。我做错了什么?

准备好的语句是正确的 - 已经将它与我的专栏和 table 基本上做同样事情的名称和工作语句进行了多次比较。而保存在loadingaid1中的请求值也存在于table.

$conn 未定义!!!!!!!!在你的函数范围内,$conn 是未定义的!!!如果需要,将其设为全局:

在您的 connection.php

中将其声明为全局
global $conn = ......

在你的函数中

function getProductId($product) {
   global $conn;

   $stmt = $conn->prepare('SELECT idproducts FROM products WHERE title = :product LIMIT 1');
   if ($stmt->execute(array(':product' => $product))) {
      $row = $stmt->fetch(PDO::FETCH_ASSOC);
      return $row['idproducts'];
   };
}

这是简单的方法,但也许您不想使用全局。这是另一种方法:使用 returns 您的 $conn 对象的方法定义 class 。我让你自己做。您的 getProductId() 函数将是:

function getProductId($product) {
       $stmt = Db::getInstance()->prepare('SELECT idproducts FROM products WHERE title = :product LIMIT 1');
       if ($stmt->execute(array(':product' => $product))) {
          $row = $stmt->fetch(PDO::FETCH_ASSOC);
          return $row['idproducts'];
       };
    }