从数据库检索时未解析价格$XX.XXX


Not parsing a price $XX.XXX when retrieving from a DB

我正在帮助开发优惠券网站的数据库中检索一个字段。其中一个字段有促销信息,例如,"只需10.99美元即可购买此产品"。当我检索字段并回复它时,它会将价格解析为一个变量,最后我会得到"只需.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!

  1. 您可以使用以下转义符来转义$''使用''10.99美元
  2. 另外,不要使用$echo,它不是一个函数
  3. 现在不要用mysql,它已经贬值了,用mysqli吧

回显包含$的字符串不可能将该$视为变量。

例如

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

http://php.net/manual/en/function.money-format.php

我在库存和小型会计系统中使用过这种方法。希望它能有所帮助。

这里应该做两件事;

  • 将价格保存在不带货币符号的数据库中

它不是必需的,可能会混淆数据库和您。相反,在将价格回复到网页时使用它。然而

  • 不要使用$符号

您不需要这样做,因为有一个HTML代码会为您显示它($)。这样一来,它也将符合标准。在回显价格之前,您应该对变量进行数字格式设置;

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

还要注意,您应该使用echo而不是$echo

此外,您的数据库对SQL注入是完全开放的。请阅读如何在PHP中防止SQL注入。

希望这能有所帮助。