2017-07-18 30 views
0

我正嘗試從按鈕的onclick()事件運行上述語句。我可以在屏幕上回顯我的變量$qtr, $saleqtr, $startdate, $enddate,但由於某種原因,我試圖扔在一起的sql語句永遠不會回顯(也不執行,這就是爲什麼我想看到字符串)。PHP不會在屏幕上回顯結果

我有一個簡單的語法錯誤還是其他地方的問題?

<?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> 
+0

讓我們來看看你的'onclick()'函數。如果它不使用AJAX,則不能從它調用PHP代碼。 –

+1

[Little Bobby](http://bobby-tables.com/)說*** [你的腳本存在SQL注入攻擊風險。](http://stackoverflow.com/questions/60174/how-can- I-防止-SQL注入式-PHP)***。即使[轉義字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)是不安全的! –

+0

@JayBlanchard - 請參閱編輯是你之後? – BellHopByDayAmetuerCoderByNigh

回答

0

當你調用$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(); 
+0

它似乎是你立即覆蓋下一行的對象??? –

+0

不,我正在實例化查詢對象,然後分配要執行的查詢字符串。上面的語法不會在屏幕上產生回顯。 – BellHopByDayAmetuerCoderByNigh