0

您好,我正在使用 flex 4.5 和 php,我有一个带有查询的服务 php 文件,该查询实际上正在工作,此查询检索特定的产品信息。但是当我想用 like 获取语句时?% is not working here 是工作代码

public function getProductsByName2($searchStr) {
     $stmt = mysqli_prepare($this->connection,
          "SELECT
              products.id,
              products.codb,
              products.nombre,
              products.precio,
              products.cantidad
           FROM products where products.nombre LIKE ?");
      $this->throwExceptionOnError();


      mysqli_stmt_bind_param($stmt, 's', $searchStr);

此代码实际上可以获取特定的产品信息,但必须与名称完全匹配,如果我想检索所有以“c”开头的名称,例如我应该有这样的东西

public function getProductsByName2($searchStr) {
     $stmt = mysqli_prepare($this->connection,
          "SELECT
              products.id,
              products.codb,
              products.nombre,
              products.precio,
              products.cantidad
           FROM products where products.nombre LIKE CONCAT('%',?,'%')");
      $this->throwExceptionOnError();


      mysqli_stmt_bind_param($stmt, 's', $searchStr);

但不知何故不工作请任何帮助表示赞赏

4

1 回答 1

0

我从未见过用 MYSQL 的 CONCAT 方法添加的“%”。相反,我会%在 PHP 范围内添加 - 所以:

// ...
FROM products where products.nombre LIKE ?");
// ...
mysqli_stmt_bind_param($stmt, 's', '%' . $searchStr . '%');

希望这可以帮助。

于 2012-05-28T21:51:48.210 回答