【问题标题】:odd sql error, variable not being recognized correctly奇怪的 sql 错误,变量未被正确识别
【发布时间】:2012-05-19 21:50:19
【问题描述】:

我目前在这个问题的第二个小时,我无法解释它,所以我将简单地展示发生了什么。我不知道这是否重要,但我正在使用linkedIN API 来检索用户的linkedIn 唯一ID。

用英语,我在做什么:

  1. 用户使用 LinkedIn 登录
  2. 我读入了用户的 LinkedIn ID(从 API 返回)
  3. 如果 ID 存在于数据库中,请说“你好”,如果没有,请向他们出示表格进行注册

我遇到的问题:

以下行正常工作并正确返回我在数据库中的1 用户,其linkedIn ID 为OtOgMaJ2NM

$company_data = "SELECT * FROM s_user WHERE `LI_id` = 'OtOgMaJ2NM'";

以下查询不返回任何结果 - 使用相同的数据库和表 s_user 中的相同记录:

$linkedIn_id = "<?js= id ?>";
echo $linkedIn_id;  

以下代码输出OtOgMaJ2NM,没有尾随空格。

到目前为止一切顺利......除了这次我使用变量运行查询时,没有返回任何记录!

$company_data = "SELECT * FROM s_user WHERE `LI_id` = '$linkedIn_id'";

补充说明: 当我 echo $company_data 使用变量时,会显示与使用纯文本版本查询时相同的查询。

有人有什么想法吗?

谢谢,

埃文

【问题讨论】:

    标签: mysql variables select


    【解决方案1】:

    我只能假设当回显变量时它会剥离标签,所以当你将它与查询一起使用时,你实际上是在说:

    $company_data = "SELECT * FROM s_user WHERE `LI_id` = '<?js= OtOgMaJ2NM ?>'";
    

    我可能是错的,但是您是否尝试过从变量中剥离标签?

    【讨论】:

    • 那么你建议为查询写什么?你的回答让我有点困惑,对不起
    【解决方案2】:

    如果您在“”之间发送变量,MySQL 引擎将直接搜索 $linkedIn_id 而不是其内容。 似乎您正在使用 php,但我不确定正确的语法。查看文档。

    【讨论】:

    • 如果是这样的话,为什么当我回显查询时它会返回正确的信息?
    • 因为在 echo 中,解释器在将字符串传递给服务器之前对其进行解析。
    • 那么我怎么可能把它放到 sql 中呢?
    • 尝试将查询字符串与变量连接起来。
    猜你喜欢
    • 2023-02-08
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多