我有一个名为"m &m (12-11-15在11:11)-Ca:16:20:06-ai“的表,我的sql查询是:
$queryac="SELECT *
FROM `$actiontable`
WHERE (Assignedto LIKE '%$username%'
OR Assignedby='$username')"; 变量的PHP代码是:
$table=$_GET['id'];
$actiontable=$table.'-ai';
id=m+%26amp%3B+m+%2812-11-15+at+11%3A11%29-Ca%3A16%3A20%3A06(我试过urldecode($_GET‘’id‘),但也不起作用)
回显的查询是:
SELECT * FROM `m & m (12-11-15 at 11:11)-Ca:16:20:06-ai` WHERE (Assignedto LIKE '%mariummalik22@gmail.com%' OR Assignedby='mariummalik22@gmail.com') 来自mysql的表名:m&m (12-11-15在11:11)-Ca:16:20:06-ai
我得到的错误:
Table 'alsonsrn_actionitems.m & m (12-11-15 at 11:11)-Ca:16:20:06-ai' (尽管该表存在)
当我回显$actiontable时,我得到m&m(11:11处的12-11-15)-Ca:16:20:06-ai,这正是我的表名,但查询不起作用。当我手动输入相同的回显值而不是变量时,查询工作正常。原因是什么??
注释:对于不包含"&"的表名,使用相同的查询
发布于 2015-11-21 08:22:16
我做了些测试。为了获得正确的字符串,我使用了:
$id = 'm+%26amp%3B+m+%2812-11-15+at+11%3A11%29-Ca%3A16%3A20%3A06';
var_dump( html_entity_decode( urldecode( $id ) ) );产出如下:
字符串(37) "m &m(11:11时为12-11-15)-Ca:16:20:06“
试试看。
https://stackoverflow.com/questions/33840968
复制相似问题