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

标签 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' 

(虽然表存在)

当我 echo $actiontable 时,我得到 m & m (12-11-15 at 11:11)-Ca:16:20:06-ai,这正是我的表名,但查询不起作用。当我手动输入相同的回显值而不是变量时,查询有效。这可能是什么原因?

注意:相同的查询适用于不包含“&”的表名

最佳答案

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

$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"

尝试一下。

关于php - 变量在 php 中的 mysql 查询内无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33840968/

相关文章:

php - 日期加一个月php

php - 按页面降序对表头进行排序,而不对整个数据库表进行排序

mysql - 为什么 Table Import 显示错误 1366,Data looks good

c++ - MySQL FROM_UNIXTIME 命令不写入

mysql - 如何监控并自动重启mysql?

javascript - 解析 AJAX 请求的结果

php - 多重继承支持

php - 使用网络电子邮件客户端进行项目管理

php - 如何使用 mysql 数据库中的 symfony 3.4 显示大段落的几行

mysql - 如果新插入更改了该顺序,如何从数据库中检索一系列有序数据?