【问题标题】:Mysql select not working for variableMysql选择不适用于变量
【发布时间】:2014-02-24 11:25:59
【问题描述】:

大家好,我有一个从未遇到过的有趣问题

我做了这样一个简单的mysql选择

$menuDig = mysql_query("SELECT * FROM gl98t_posichool_tricks WHERE `category_id` = '$cid'");

$cid

$cid = $trick['category_id'];

这是string(1) "1" 它可以工作,但是当我像这样手动输入 cid 时

$cid = '1';

它不起作用。我在两个示例中都使用了 var_dump,并且输出相同 string(1) "1"

有谁知道问题出在哪里?

输出也很奇怪,因为$trick['category_id']; 在数据库中是整数,但是当我把它放在$cid 中时它是字符串

我首先虽然我必须将整数也放入$cid,但它也不起作用。

【问题讨论】:

  • 整数不需要使用引号
  • 您的查询运行良好,如果您输入完整代码没有任何错误,那么我可以更好地理解您的问题

标签: php mysql select


【解决方案1】:

试试这个

$cid = intval($trick['category_id']);
$cid = intval(1);

然后在你的 sql 中执行:

$menuDig = mysql_query("SELECT * FROM gl98t_posichool_tricks WHERE `category_id` = ".$cid);

【讨论】:

  • 谢谢,我感觉自己像个哑巴,现在我打开了错误显示,我看到我的连接在某些情况下失败了,我重新连接了,现在它可以正常工作了,谢谢你的答案跨度>
【解决方案2】:
mysql_query("SELECT * FROM gl98t_posichool_tricks WHERE `category_id` = '$cid'");

$cid 中删除单引号并再次检查

【讨论】:

  • 去掉引号后查询会变成这样:mysql_query("SELECT * FROM gl98t_posichool_tricks WHERE category_id = $cid");
  • 如果您的数据库中的数据类型 fot cid 是 int 类型,您必须将 1 作为整数而不是字符串传递
【解决方案3】:

试试这个

$menuDig = mysql_query("SELECT * FROM gl98t_posichool_tricks 
                        WHERE `category_id` = ".intval($cid) );

在你的变量中使用这个

  $cid = 1;  //without quotes.

【讨论】:

  • 谢谢,我感觉自己像个笨蛋,现在我打开了错误显示,我发现我的连接在某些情况下失败了,我重新连接了,现在它可以正常工作了,谢谢你的答案跨度>
【解决方案4】:

您是否尝试过不使用变量进行查询并检查结果?

$menuDig = mysql_query("SELECT * FROM gl98t_posichool_tricks WHERE category_id=1");

试试这个并检查结果。

如果以上选项都不起作用,则可能是其他地方有问题...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 2021-06-21
    • 1970-01-01
    相关资源
    最近更新 更多