【问题标题】:Mysql query not working properly : SELECT * FROM 'table' WHERE 'column' = 'some_string'Mysql 查询无法正常工作:SELECT * FROM 'table' WHERE 'column' = 'some_string'
【发布时间】:2014-05-12 04:45:38
【问题描述】:

我无法使它正常工作。我想从数据库中选择行并将其呈现到列表中。这是我的代码:

<ul class = "list">
  <li>
  <?php
    $x = 'some_string';
    $title = 'title';

    $dbc = mysqli_connect('localhost', 'root', '', 'database') or die('Error connecting');
    $query = "SELECT * FROM table WHERE column ==$x ORDER BY procenat DESC LIMIT 5";
    $data = mysqli_query($dbc, $query);
  ?>
   <div id = "listdiv">
  <?php
    while ($row = mysqli_fetch_array($data)) {
  ?>
    <h4><?php echo $row[$title]; ?> </h4>
  <?php 
    }
    mysqli_close($dbc);
  ?>
   </div> </li> </ul>

我尝试使用 LIKE '%$x%',但效果不佳。我试过... column = $x

【问题讨论】:

  • 为什么要双等号?这是错误的,请删除 == 并使用 = 重试
  • 您是否收到任何错误或没有显示?
  • + 在 PHP 代码中连接?这不是javascript
  • 首先,定义 /explain “没用”。其次,您是否尝试过直接在控制台中运行 SQL?有用吗?
  • 我尝试了一个=,但没有成功,你可以看到我把它写到最后。 #鲨鱼

标签: php mysql select


【解决方案1】:

您需要使用单等号和引号。

    $query = "SELECT * FROM table WHERE column = '$x' ORDER BY procenat DESC LIMIT 5";

【讨论】:

  • 再次无法正常工作。我认为问题不在于查询,因为我几乎尝试了任何东西。
  • 然后加载 phpmyadmin 并确保您的查询执行。一旦我们完成了,我们将确定问题出在 php 方面。
【解决方案2】:

你应该像这样使用 LIKE 运算符

$query = "SELECT * FROM table WHERE column_name LIKE '%$x%' ORDER BY procenat DESC LIMIT 5

【讨论】:

  • % 应该在查询中... %".$x."%
  • 尝试使用单引号 LIKE '%$x%'
【解决方案3】:

如下图改变查询行

$query = "SELECT * FROM table WHERE column = '".$x."' ORDER BY procenat DESC LIMIT 5";

【讨论】:

    【解决方案4】:

    你的查询有两个错误,试试这个。

    1. $x 替换为'$x'
    2. == 替换为=
    3. 运行查询
    $x = 'some_string';
    
    $query = "SELECT * FROM table WHERE column ='$x' ORDER BY procenat DESC LIMIT 5";
    

    【讨论】:

    • 不是这样的。我认为问题不在查询中。
    • 我看到了那个代码并运行了那个查询,所以我在查询中发现了一个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    相关资源
    最近更新 更多