2012-06-11 50 views
1
echo $date1u 

給我2010-04-21PHP變量無法在SQL查詢中工作?

當我採取的日期和它硬編碼到一個SQL查詢,它工作正常

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '2010-04-21' 

但當我,而不是直接使用$ date1u它不」根本不工作。

"SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '".$date1u."' " 

我的變量$ date1u或SQL格式是什麼問題阻止了它的工作?

編輯

隨後建議,並試圖

$result1 = "SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '".$date1u."' "; 
echo $result1; 

看到的結果和一些如何在這種情況下,出放爲

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '2010-04-22' 

一些如何當我回聲$ date1u單獨其2010-04-21但當我回聲SQL查詢中的變種1天添加

+2

你有分配上面的查詢一個變量,並且呼應的結果? –

+0

不工作如何?你會得到什麼錯誤?你有可能有一些無形的角色嗎? –

+0

它不起作用,如在示例1我得到的結果,但與示例2我沒有得到任何結果。 –

回答

1

變量的任何一側是否有空格 - 即空格或製表符?如果是這樣,這可能是導致問題的原因。

嘗試echo ">>" . $date1u . "<<";

如果你得到 「>> 2010-04-21 < <」 你知道你有一個前導空格。獲得可變長度也可以幫助查明問題。

+0

我回來了>> 2010-04-22 <<< –

+0

你是否從php/mysql獲取任何錯誤代碼? – FreudianSlip

+1

其實,解決了我的問題,因爲var是1天休息 –

1

我想知道$date1u返回的值是否返回由引號括起來的值。如果是這樣,您需要在將它插入SQL查詢之前刪除引號。

+0

已更新答案,因爲''不在迴應中。 –

0

我猜

這樣的:

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '2010-04-21' 

應該是這樣的:

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = 2010-04-21 

,你需要拿出''上的日期。這是爲sql查詢錯誤。

+0

SELECT * FROM phoneappdetail WHERE salebarn ='OSI'AND saledate ='2010-04-21'正常工作。它的版本與$ date1u不起作用。 –

0

我試過這在我的服務器上,它的工作。

"SELECT * FROM phoneappdetail WHERE salebarn='OSI' AND saledate='$date1u'" 

它可能不是完美的編程,但它的工作。

0

試試這個

"SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '" . trim($date1u) . "'"