2014-10-07 51 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

希望这会有所帮助。