2014-10-07 56 views
0

我正在從優惠券網站上的數據庫中檢索字段,我正在幫助開發。其中一個字段包含促銷信息,例如,「僅以10.99美元購買此產品」。當我檢索該字段並將其回顯時,它會將該價格解析爲變量,並且最終以「僅爲0.99購買此產品」

如何避免這種情況?

我的代碼如下:

$resultTitle = mysql_query("SELECT post_title FROM wp_posts WHERE ID = " . $f_couponId . " LIMIT 1") or die(mysql_error()); 
$valueTitle = mysql_result($resultTitle,0); 
$echo("$valueTitle"); 

THX!

+4

'$ echo(...)'完全無效。回聲是一種語言結構,而不是一個變量。並且不需要''$ valueTitle''只需要一個簡單的'echo $ valueTitle'。 – 2014-10-07 21:42:46

回答

1
  1. 您可以使用轉義字符\ 使用\ $ 10.99來轉義$。
  2. 另外,不要使用$回聲,它不是一個函數。
  3. 現在不使用mysql,它被折舊,而是使用mysqli。
1

無法回顯包含$的字符串會將$視爲變量。

例如

php > $foo = 'This string has a $ sign in it, and another $fake one as well'; 
php > echo "$foo"; 
This string has a $ sign in it, and another $fake one as well 
0

你應該在這裏做兩件事;

  • 保存在數據庫中的有價無貨幣符號

它不是必需的,可以混淆數據庫和你。請在將價格回傳到網頁時使用它。但是...

  • 不要使用$符號。

你不需要,因爲有一個HTML代碼會爲你顯示它($)。這樣它也將符合標準。你應該在迴應價格之前編號格式化你的變量;

$price = number_format($valueTitle,2); 
echo "$$price"; 

另外請注意,你應該使用echo沒有$echo

此外,您的數據庫是開放SQL注入。請閱讀How can I prevent SQL injection in PHP

希望這會有所幫助。