Php 使用变量保存表名,并在查询中使用该变量

Php 使用变量保存表名,并在查询中使用该变量,php,mysql,string,variables,concatenation,Php,Mysql,String,Variables,Concatenation,下面是构造变量的代码: $idProvincia=$_GET["ciudad"]; 表格名称将根据$idProvincia值更改。 表名: $post="wp_".$idProvincia."_post"; 我想在查询中包含$post变量: $result = mysql_query ("SELECT post.ID, post.post_title, post.guid, post.post_content, postmeta.meta_value, postmeta.meta_key

下面是构造变量的代码:

 $idProvincia=$_GET["ciudad"];
表格名称将根据$idProvincia值更改。 表名:

 $post="wp_".$idProvincia."_post";
我想在查询中包含$post变量:

$result = mysql_query ("SELECT post.ID, post.post_title, post.guid, post.post_content, postmeta.meta_value, postmeta.meta_key
FROM `".$post."` AS post
INNER JOIN wp_".$idProvincia."_postmeta AS postmeta ON post.ID = postmeta.post_id
WHERE postmeta.meta_key='fc_start_datetime' AND post.post_status='publish' AND post.post_type='post'
ORDER BY postmeta.meta_value ") or die (mysql_error());
我不能得到正确的结果。我已经读了很多手册,但我不能让查询功能


我想对更多变量执行相同的查询过程

您应该将idProvincia内容移动到表
正文
,而不是名称中

将名为
idProvincia
的字段添加到表
wp\u post
中,然后以通常的方式添加此数字:

$ciudad = mysql_real_escape_string($_GET["ciudad"]);
$sql = "SELECT post.ID, post.post_title, post.guid, post.post_content,
               postmeta.meta_value, postmeta.meta_key
FROM wp_post AS post
INNER JOIN wp_postmeta AS postmeta ON post.ID = postmeta.post_id
WHERE postmeta.meta_key='fc_start_datetime' AND post.post_status='publish' AND post.post_type='post' AND idProvincia = '$ciudad'
ORDER BY postmeta.meta_value "
$result = mysql_query ($sql) or trigger_error(mysql_error());

以上查询您得到了什么?请停止!阅读以下内容:然后阅读以下内容:即使你让代码正常工作,你也只是从安全角度自找麻烦。@bgp我知道注入问题,我只是想让它正常工作,我稍后会更改它,没有理由投反对票,我只需要知道如何连接并使其工作。警告您的代码容易受到sql注入的攻击,并且您使用的是过时的api。请使用PDO或mysqli检查@n4h1n是否足够公平。我建议在问题中先说明这一点——你可以看到答案。不过,我没有投反对票,我不能把idProvincia加入表格wp_的位置。$idProvincia值将更改,查询必须更改为是。这就是为什么它被添加到查询中。SQL就是这样工作的:必须将数据存储在表体中,而不是表名中