【问题标题】:Insert Degree Symbol in database through PHP通过PHP在数据库中插入度数符号
【发布时间】:2013-12-01 06:57:46
【问题描述】:

你好 StackOverflow 朋友,

我将温度存储在数据库中,但无法添加度数符号。我的代码是:

$que = "Insert into tblTempForecast (DateTimePosted, Now, Tomorrow) VALUES(now(),'$CloseLow1 ° - $CloseHi1 °','$CloseLow2 ° - $CloseHi2 °')";
$insertTemp = mysql_query($que);

我的$CloseLow1 等于 15,$CloseHi1 等于 20。$CloseLow2 等于 18,$CloseHi2 等于 22。

但是,在我上面的代码中,它只插入了$CloseLow1CloseLow2。它应该在数据库中插入 ff:

ID (auto)              DateTimePosted             Now            Tomorrow
1                      2013-11-18 15:25:48       15°-20°         18°-22°

【问题讨论】:

  • It is supposed to insert the ff on the database: 是什么意思?
  • 我的意思是,它应该是插入的那个。我的代码只在字段上插入 15 和 18,而不是 15-22 和 18-22。
  • 在查询调用之前$que 字符串到底是什么样子的?
  • 我不明白。在您的问题中,您将 15-20 显示为已插入。这是预期的结果还是现在发生的情况?无论如何,请参阅下面的 STT LCU 的答案。应该这样做。

标签: php mysql database symbols


【解决方案1】:
  1. 不要使用 mysql_* 函数,因为它们已被弃用。改为了解 PDO,这是当今做事的方式。
  2. 不要保存 HTML 编码的字符。始终将它们存储为 UTF-8(或您喜欢的字符集,即使我建议您使用 UTF-8)
  3. 如果您将它们存储为纯 UTF-8 字符,此问题将立即自行解决。请记住,您需要在获取的值上调用 htmlentitieshtmlspecialchars
  4. 为什么将值存储为字符串,而不是 4 个单独的字段?您将能够拥有更大的灵活性(您现在可以使用整数进行平均值和各种计算,而您不能使用字符串)并且您可以将° 问题留给您的页面渲染脚本,而不是与 DB 搏斗字符编码。

对不起,如果我没有直接解决您的问题,但我认为从长远来看,如果您走大路,从根本上解决问题,而不是表面问题,那么从长远来看,您会更好。

特别是 4 号。真的,考虑一下。

【讨论】:

  • 好答案。 +1 解决实际问题。
  • 我必须强烈同意第 4 点。将两个不同的值插入到单个字段中违反了 1NF,您根本不会这样做。如果在数据库设计中只有一条规则你不会打破,那就是它。
  • 谢谢,我试试这个。
  • @Sarah 你觉得这个答案有用吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-24
  • 2018-12-03
相关资源
最近更新 更多