【发布时间】: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