【问题标题】:PHP function get wrong value with SQL QueryPHP 函数使用 SQL 查询获取错误值
【发布时间】:2014-03-04 11:05:54
【问题描述】:

如果假设我的 ID 是 'ANS152488',那么我得到的角色 ='ANS152488' 和 id='JytJRCsn'。但是 encryptId() 函数不能正常工作,因为正确的答案是 'QU5TMTUyNDg4' 而不是 'JytJRCsn'。

为什么base64不起作用???

查询 -

SELECT FNAME, LNAME, '<a id=".encryptId("'+ID+'")." rel=".testingId("'+ID+'")." class=\"btn btn-info\">Click</a>' As [Status] FROM UserInfo

PHP 函数 -

function encryptId($param){
  $res = base64_encode($param);
  return $res;
}

//For Testing Purpose - 
function testingId($param){
 return $param;
}

【问题讨论】:

  • 你不能把 PHP 放到你的 MySQL 查询中
  • @Pattle 但函数仍在 sql 查询中工作,只有当值编码为 base64 时才会得到错误的答案。还有什么其他的表示方式???
  • 提示:base64_encode("'+ID+'") = 'JytJRCsn'。请改用base64_encode(ID)
  • @squeamishossifrage 你能用php函数给我看完美的sql查询吗???
  • @RohitSutharMumbai 不,我不能,因为您只在此处发布了 SQL 查询的片段。问题是您想要计算 ID 常量的 base64 编码,但您正在计算由单引号、加号、字母“I”和“D”组成的字符串的 base64 编码,和另一个加号和引号。为什么您首先要费心将 base64 编码应用于 ID 值,这对我来说完全是个谜。为什么 ID 被定义为常量?

标签: php mysql sql sql-server


【解决方案1】:

这样做

<?php
 $query= "select * form  UserInfo " 

 $result=mysql_query($query);

 if(mysql_num_rows($result)>0)

  {
   while($rows=mysql_fetch_array())

  { ?>

<a id="<?php echo encryptId(rows['ID'])?>" rel="<?php echo testingId(rows['ID'])?> class=\"btn btn-info\">Click</a>

 <?php

   }
  } 
  ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    相关资源
    最近更新 更多