PHP 不会在屏幕上回显结果

PHP Will Not Echo Results On Screen

我正在尝试 运行 从按钮的 onclick() 事件中执行上述语句。我可以在屏幕上回显我的变量 $qtr, $saleqtr, $startdate, $enddate 但出于某种原因,我试图拼凑在一起的 sql 语句从不回显(它也不执行,这就是我想查看字符串的原因)。

是我有一个简单的语法错误还是其他地方的问题?

<?php
    if (isset($_POST['submit'])) {      
        $saleqtr = $_POST['qtr'];
                if ($saleqtr == "first") { $startdate = '20150101'; $enddate = '20150331';  }
        if (isset($startdate) && isset($enddate)) {
            $customername = $_POST['customer'];
            $option = array();
            $option['driver'] = 'mssql';
            $option['host'] = 'X';
            $option['user'] = 'user';
            $option['password'] = 'pass';
            $option['database'] = 'db';
            $option['prefix'] = '';
            $db = JDatabase::getInstance($option);
            $sql = $db->getquery(true);
            $sql = "SELECT Top 1 name from name where hiredate >= '$startdate' And hiredate <= '$enddate'";
        }
        echo $sql;
    }
?>

编辑
下面是我的点击事件

<body>
    <form method="POST">
        <input type="submit" name="submit" value="Click Me">
    </form>
</body>

当您调用 $db->getquery(true); 时,您正在创建一个 joomla 查询对象,该对象有一个 __toString() 函数,因此下面的函数应该适合您。

echo $sql->__toString();

编辑

试试这个。

$sql = $db->getquery(true);
$sql->select("Top 1 name from name where hiredate >= '$startdate' And hiredate <= '$enddate'");

echo $sql->__toString();