MySQL - 如何使用文件名作为Query的一部分?

时间:2015-01-23 01:36:20

标签: php mysql

我对MySQL世界很陌生,所以我很抱歉,如果这可能是显而易见的事情!

我尝试做的是一个查询,它在不同页面上输出价格数据,此时它工作正常 - 但是在每个页面上我使用查询我必须更改查询中的产品页面名称。如何自动获取页面的文件名(不包括.PHP)并将该名称插入查询中? (我在DB中有一个具有所有不同页面名称的相应列)

$query=("SELECT * 
        FROM database e 
        JOIN validdate1 r ON e.datevalid1=r.id 
        JOIN validdate2 d ON e.datevalid2=d.id 
        WHERE productpage='page01' 
        ORDER BY price2, 

所以不是手动输入page01,而是希望从文件名中取出它(在本例中是page01.php)。

提前谢谢!

4 个答案:

答案 0 :(得分:1)

echo __FILE__;输出当前文件名。

echo preg_replace('/\.php$/', '', __FILE__);输出当前文件名,而不是' .php'。

Get the current script file name

答案 1 :(得分:1)

在查询中使用变量插值:

$pageName = basename(__FILE__, '.php');
$query=("SELECT * FROM database e JOIN validdate1 r ON e.datevalid1=r.id JOIN validdate2 d ON e.datevalid2=d.id WHERE productpage='$pageName' ORDER BY price2");

...或使用预准备语句并将页面名称作为参数提交

答案 2 :(得分:0)

使用以下代码

阅读php页面名称
$page=basename($_SERVER['PHP_SELF']); /* Returns PHP File Name */
$page_name=str_replace(".php","",$page);

$query=("SELECT * 
    FROM database e 
    JOIN validdate1 r ON e.datevalid1=r.id 
    JOIN validdate2 d ON e.datevalid2=d.id 
    WHERE productpage='$page_name' 
    ORDER BY price2, 

答案 3 :(得分:0)

如果页面链接是这样的事情: http://yourhost/abc/page1

你可以使用这个来获取/ abc / page1:

$path = parse_url($url, PHP_URL_PATH)

取决于您的网址结构,您可以使用explode来获取第1页