0

こんにちは、私はflex 4.5とphpを使用していますが、実際に機能するクエリを含むサービスphpファイルがあり、このクエリは特定の製品情報を取得します。しかし、like?%が機能していないステートメントを取得したい場合は、機能しているコードです

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 に答える