【问题标题】:Select Where giving no result选择没有结果的地方
【发布时间】:2013-11-13 22:47:33
【问题描述】:

我想从记录中选择一个字段值,该记录中的另一个值与我指定的值匹配。

“SKU”是唯一的,不是PK,而是唯一。我从表中只选择了一个字段(代码),所以变量 $gemCode 应该只包含那个 1 值。然而,在回显中,它要么不输出任何类似于下面的代码,要么如果我指定了字段“$gemCode['Code'],它只会喷出我以前从未见过的“Resource id #8”。

$gemCode = mysql_query("SELECT Code FROM stock WHERE SKU = 'TN-YKJI-ESWB'");

        echo "Gem Code: ".$gemCode."<br>";

此代码处于循环中,对于将从中获取 SKU 值的文件的每一行。尽管代码中没有任何循环(从文件中获取的变量等)它确实给出了输出,但“资源 id #8”数字从 8 开始在每个循环中上升:

Gem Code: Resource id #8
Gem Code: Resource id #9
Gem Code: Resource id #10
Gem Code: Resource id #11
Gem Code: Resource id #12
Gem Code: Resource id #13
Gem Code: Resource id #14
Gem Code: Resource id #15

我遇到了一些问题,在我的表格中的数据之前有空格,所以需要“LIKE '%value%'”,尽管我已经检查过并且有问题的值没有这个,所以它不像我从技术上不存在的价值中寻找。

还应该提到我确实有:

$conn = mysql_connect('localhost', 'root', '');         
mysql_select_db('amazondb', $conn);

我真的很难过,我以为这只是一个简单的选择在哪里。

非常感谢任何帮助,谢谢 -Tom

【问题讨论】:

  • 您是否阅读过mysql_query() 上的文档?如果你有,你会注意到两件事:1)mysql_query() 不只是返回一个准备设置为变量的值;2)mysql_* 函数已被弃用,不应再使用。
  • 很抱歉提出问题。有时事情被忽略了,或者上帝保佑人们是新的,但多亏了你,我仍然不知道我的简单问题的答案......不,那是谎言,其他人实际上提供了帮助。

标签: php sql select where


【解决方案1】:

如果你想要数据库结果,你需要使用 mysql_fetch_assoc($gemCode)。

$gemCode = mysql_query("SELECT Code FROM stock WHERE SKU = 'TN-YKJI-ESWB'");
$gemArr = mysql_fetch_assoc($gemCode);

print_r($gemArr);

但是,除了“这就是你的做法”之外,你真的应该考虑使用mysqli_ 而不是 mysql。如果您准备好迎接学习 PDO 的挑战,您应该尝试使用它(是的,甚至超过 mysqli_)。

【讨论】:

  • 另外,我知道您说过 SKU 将始终是唯一的,但是您是否对您的表设置了唯一约束以确保始终正确?
  • 你说得对,我想得太多了。对不起。执行“回显 $gemArr['Code'];”而不是“print_r($gemArr);”。
  • 谢谢,这首先是一个愚蠢的问题,显然有些人有点自大。我已经按照你的建议做了,之前我需要做很多次,我只是看了看需要,大脑失灵了。
  • 别担心!很高兴我能帮忙:)
【解决方案2】:

您需要获取数据。

$gemData = mysql_query("SELECT Code FROM stock WHERE SKU = 'TN-YKJI-ESWB'");
$gemInfo = mysql_fetch_assoc($gemData);
    echo "Gem Code: ".$gemInfo['Code']."<br>";

【讨论】:

    【解决方案3】:

    作为前面答案的补充,mysql_query() 返回的是资源,而不是字符串。

    作为一种好习惯,我建议您从循环中删除 mysql_query 并使用“...WHERE SKU IN ('TN-YKJI-ESWB', 'yourSecondKey', ..., 'yourNKey')”看看:

    • mysql_result()
    • mysql_fetch_row()
    • mysql_fetch_array()
    • mysql_fetch_assoc()
    • mysql_fetch_object()

    php.net 手册。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      • 2018-04-02
      • 2022-06-14
      相关资源
      最近更新 更多