【问题标题】:how can i save values with arithmetic operators in mysql with php?如何使用 php 在 mysql 中使用算术运算符保存值?
【发布时间】:2016-01-13 21:28:18
【问题描述】:

我在 mysql 中有一个字段数据类型 VARCHAR。 它必须保存像495/1,495/2 这样的数据,但是当我从PHP 运行查询时,它会像495, 247.5 这样保存在mysql 中。所以基本上mysql会划分值。

那我试过了

$sfno = $_POST['sfno']; // i am getting value from HTML form the value is 495/2    
$sfno = explode("/",$sfno);
$sfnom = "$sfno[0]"."-"."$sfno[1]";

然后mysql减去这些值并保存为494,493

那么如何在mysql数据库中保存算术运算符呢?

【问题讨论】:

  • $sfno = "497/2"; 然后保存。
  • $_POST 中的值是如何创建的?
  • @ThisNameBetterBeAvailable 来自用户输入值的 HTML 表单,例如 495/1,495/2
  • @Jaiffable 当你按照 Criesto 所说的去做时会发生什么?有用吗?
  • @ThisNameBetterBeAvailable 不,它也不起作用请检查这个link

标签: php mysql operators arithmetic-expressions


【解决方案1】:

您需要将变量放在查询字符串中的引号之间以防止计算。

$sfnom = "$sfno[0]"."-"."$sfno[1]";

变成(注意字符串中的单引号):

$sfnom = "'$sfno[0]"."-"."$sfno[1]'";

您还需要对其进行 URL 解码(%2f 为/,否则它将包含2f 而不是/):

$sfnom = urldecode("'$sfno[0]"."-"."$sfno[1]'");

所以INSERT INTO sfarea(sfareaid,sfno,sftotarea,sfsoldarea) values(2003,495/2,9854,0) 变成:

 INSERT INTO sfarea(sfareaid,sfno,sftotarea,sfsoldarea) values(2003,'495/2',9854,0)

你要存储算术运算符的唯一方法是作为字符串,所以你需要在它周围加上引号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多