【问题标题】:PDO/MySQL saving number string with e (exponent) as integerPDO/MySQL 以 e(指数)为整数保存数字字符串
【发布时间】:2013-10-16 19:23:29
【问题描述】:

我正在尝试将以下字符串保存到数据库中:12E2。由于E(指数),MySQL 将其保存为“1200”(12 × 102)。有没有办法避免这种情况?我正在尝试将其保存到数据库中的 VARCHAR 字段中。

$q->bindValue(":field","12E2",PDO::PARAM_STR);

编辑:我上传了a script,它显示了这种情况。该脚本使用以下代码:

$fetchQuery=$db->prepare("SELECT `strLocatieNr` FROM `tblShopProducten` WHERE `intID`=254");
$fetchQuery->execute();
$fetchData=$fetchQuery->fetch();
echo "Old: ".$fetchData["strLocatieNr"]."<br />";

$updateValue=@$_GET["value"];
echo "Update value: ";
var_dump($updateValue);
echo "<br />";

$q=$db->prepare("UPDATE `tblShopProducten` SET `strLocatieNr`=:field WHERE `intID`=254");
$q->bindValue(":field",$updateValue,PDO::PARAM_STR);
$q->execute();
echo "Rows affected: ".$q->rowCount()."<br />";

$fetchQuery->execute();
$fetchData=$fetchQuery->fetch();
echo "New: ".$fetchData["strLocatieNr"];

【问题讨论】:

  • MySQL中的列类型是什么?
  • 我无法重现这个
  • @Jules 你能提供更多代码吗?我也无法用VARCHAR 字段重现这个(INT 我得到了这个结果,正如预期的那样)
  • 我用扩展示例编辑了原始问题。

标签: php mysql pdo integer exponent


【解决方案1】:

奇怪,我无法重现它。您确定数据库中的字段类型是 varchar(x) 其中 x 是字符串的最大期望长度吗?

或者,您确定您的绑定值在实际代码中用引号括起来吗?

如果没有任何效果,我会试一试

$q->bindValue(":field",(string)"12E2",PDO::PARAM_STR);

【讨论】:

    猜你喜欢
    • 2017-06-22
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 2016-04-30
    • 2023-04-02
    • 2012-08-18
    • 2012-11-17
    相关资源
    最近更新 更多