【问题标题】:sql query with LIKE带有 LIKE 的 sql 查询
【发布时间】:2013-01-28 11:26:53
【问题描述】:

我有一个奇怪的问题,请看一下这个查询:

select * from myfriend where name like "%n%";

在 phpMyAdmin 上执行此查询时,查询返回正确的结果,但使用 php 执行时没有返回结果。

请注意此查询在 drupal 6 中执行。

char "n" 和 PHP 有什么问题?

【问题讨论】:

  • 附加信息:当使用任何 char else "n" 时查询返回结果。
  • 你写得像 'select * from myfriend where name like "%n%"'..??
  • $query = "select * from myfriend where name like '%n%'";
  • 这很好。接下来会发生什么?
  • $query = "select * from myFriend where name like '%n%'"; $result = db_query($query); while($row = db_fetch_object($result)){ prin_r($row); }

标签: php mysql drupal drupal-6 phpmyadmin


【解决方案1】:

百分号在 Drupal 6 查询中用作占位符,因此您需要对它们进行转义:

$query = db_query('select * from myfriend where name like "%%n%%"');

【讨论】:

    【解决方案2】:
    $searchChar = "n";
    
    $query = "SELECT * FROM `myfriend` WHERE `name` LIKE '%" . $searchChar . "%'";
    

    然后在您的语句中使用$query 变量。

    例如:

    $mysql->query($query);

    mysql_query($query);

    【讨论】:

      【解决方案3】:

      您的查询很完美。简要介绍一下。您可以检查从 php 到 mysql 的数据库连接是否正确。如果输出正确,您可以从 php 文件中回显该查询并运行到 phpmyadmin,那么肯定会存在数据库连接问题。

      php中的任何字符绝对没有问题。

      【讨论】:

      • 是的,所以你可以通过在它们前面添加额外的“%”符号来避开“%”符号。
      猜你喜欢
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2020-02-06
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多