变量在php中的mysql查询中无法正常工作

时间:2015-11-21 07:42:29

标签: php mysql

我有一张名为:" m& m(12-11-15 at 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 at 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(12-11-15 at 11:11)-Ca:16:20:06-ai,这正是我的表名,但查询不起作用。当我手动输入相同的回显值而不是查询的变量时。可能是什么原因?

注意:相同的查询适用于不包含"&"

的表名

1 个答案:

答案 0 :(得分:1)

我做了一些测试。 为了得到正确的字符串,我使用了:

$id = 'm+%26amp%3B+m+%2812-11-15+at+11%3A11%29-Ca%3A16%3A20%3A06';
var_dump( html_entity_decode( urldecode( $id ) ) );

输出是:

  

string(37)" m& m(12-11-15 at 11:11)-Ca:16:20:06"

试试吧。