【问题标题】:MySQL isn't finding a specific row in a table [duplicate]MySQL没有在表中找到特定行[重复]
【发布时间】:2018-12-25 18:16:37
【问题描述】:

我刚接触 PHP,我想做一个简单的数据查找脚本。这是我现在在 index.php 文件中使用的代码。

<?php
    $mysqlHost = 'localhost';
    $mysqlUser = 'root';
    $mysqlPass = 'password';
    $mysqlDatabase = 'core';

    $conn = new mysqli($mysqlHost, $mysqlUser, $mysqlPass, $mysqlDatabase);
    if ($conn -> connect_error)
        die('Connection Failed: ' . $conn -> connect_error);

    $sql = 'SELECT * FROM users WHERE name = SimonM34';
    $result = $conn -> query($sql);

    if ($result -> num_rows > 0) {
        $row = $result -> fetch_assoc();
        $rawJson -> name = $row['name'];
        $rawJson -> rank = $row['rank'];
        $rawJson -> subrank = $row['subrank'];
        $rawJson -> balance = $row['balance'];
        $json = json_encode($rawJson);
        echo $json;
    } else {
        echo 'No users found!';
    }

    $conn -> close();

?>

这总是显示No users found,但如果我将语句更改为SELECT * FROM users,它会返回{"name":"SimonM34","rank":"Guest","subrank":"None","balance":"500"},这很奇怪,我无法弄清楚为什么会发生这种情况。

谢谢

【问题讨论】:

  • 这不是重复的,因为我对所有表名都使用小写。

标签: php mysql


【解决方案1】:

问题出在您的查询中:

$sql = 'SELECT * FROM users WHERE name = SimonM34';

您正在比较一个不带引号的字符串值。将您的查询替换为以下内容:

$sql = 'SELECT * FROM users WHERE name = "SimonM34"';

这是我想的唯一问题。

【讨论】:

  • 太棒了,谢谢
猜你喜欢
  • 2014-02-26
  • 1970-01-01
  • 2022-01-15
  • 2017-02-18
  • 1970-01-01
  • 2012-08-06
  • 2023-04-09
  • 2010-09-16
相关资源
最近更新 更多