【问题标题】:MySQL query with PHP variable in it [closed]带有PHP变量的MySQL查询[关闭]
【发布时间】:2012-11-12 01:03:54
【问题描述】:
A)$getDetails = mysql_query("SELECT * FROM `OnlineRequests` WHERE `OSR_CODE`='".$code."'");

B)$getDetails = mysql_query("SELECT * FROM `OnlineRequests` WHERE `OSR_CODE`='oooqhqxrcglm3jn6xd2lseq43nb3cq'");    

它是 PHP。 B 有效,但 A 无效。为什么?语法错误?我觉得我已经尝试了所有可能的...

【问题讨论】:

  • 抛出的错误是什么?
  • 缺少数据库转义?你检查mysql_error()了吗?
  • 但有时我得到“提供的参数不是有效的 MySQL 结果资源”
  • 好的,当你得到那个时,$code 是什么?请提供足够的信息来回答问题。

标签: php mysql


【解决方案1】:

当我执行 MySQL 查询时,我不使用 OSR_CODE=".$random_variable." 我使用OSR_CODE='$random_variable',所以只需在包含引号的对面使用引号,看看是否有效。只是一个建议,对我有用。

编辑: 试试$getDetails = mysql_query("SELECT * FROMOnlineRequestsWHEREOSR_CODE='.$code.'"); ??

【讨论】:

  • 通常在这种情况下很明显,这种事情一直发生在我身上。检查变量名,检查变量中的所有内容。也尝试打开一些错误报告。
  • 喘不过气来!就是这样,它是进入变量的东西,非常愚蠢的东西。我觉得自己像个白痴,因为我已经尝试了几个小时......
  • 哈!很酷,这发生在我们所有人身上!
【解决方案2】:

要使 A 工作,请使用

$getDetails = mysql_query("SELECT * FROM `OnlineRequests` WHERE `OSR_CODE`=\"$code\"");

问题在于单引号。

【讨论】:

  • 不,单引号用于 SQL 字符串。 MySQL 也支持双引号,但前提是它以非 ansi 模式运行。
  • 我认为应该可以。因为单引号,$code 的值没有被替换。
  • $getDetails = mysql_query("SELECT * FROM OnlineRequests WHERE OSR_CODELIKE \"$code\"");我身边的另一个尝试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-20
相关资源
最近更新 更多