为什么我的mysqli语句不适用于flex 4.5?

时间:2012-05-26 16:14:45

标签: php mysqli flash-builder prepared-statement

嗨,我正在使用flex 4.5和php,我有一个服务php文件,其查询实际上是workink,此查询会转发特定的产品信息。但是,当我想得到类似的声明?%不工作在这里是工作代码

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);

但不知何故不起作用请感谢任何帮助

1 个答案:

答案 0 :(得分:0)

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

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

希望这有帮助。