【问题标题】:convert string to integer in php pdo在php pdo中将字符串转换为整数
【发布时间】:2014-10-11 12:41:47
【问题描述】:

如何使用 php pdo 将字符串数据类型转换为整数?我尝试使用PDO::PARAM_INTPDO::PARAM_STR,但return false 尝试将数据插入postgresql 时出错。有没有办法解决这个问题?

这里是代码:

函数创建(){

    // to get time-stamp for 'created' field

    $this->getTimestamp();
    //write query
    $query = "INSERT INTO 
                " . $this->table_name . " 
            (id_barang, nama_barang, harga_beli, harga_jual, created) VALUES (?, ?, ?, ?, ?)";

    $stmt = $this->conn->prepare($query);

    $stmt->bindParam(1, $this->id_barang, PDO::PARAM_STR);
    $stmt->bindParam(2, $this->nama_barang, PDO::PARAM_STR);
    $stmt->bindParam(3, $this->harga_beli, PDO::PARAM_INT);
    $stmt->bindParam(4, $this->harga_jual, PDO::PARAM_INT);
    $stmt->bindParam(5, $this->created);

    if($stmt->execute()){
        return true;
    }else{
        return false;
    }

}

它返回 false,如果函数 create() false,我使用警报。 harga_beli 和 harga_jual 是 postgresql 中的整数数据类型。在 html 表单中,我使用 javascript 函数来分隔零。例如:60.000,并且数字应该是数据库中的整数。

【问题讨论】:

  • 如果您有错误,请在您的问题中提供错误 + 描述 - 当您提出问题时,它总是有用的。还显示您的代码摘录,以便更清楚您的工作。有关编写问题的更多提示,请参阅帮助中心:stackoverflow.com/help
  • 你得到什么错误?
  • PDO 数据库驱动程序在使用时会自动将 PHP 参数“强制”为适当的数据库类型。即,如果您说 PDO::PARAM_INT 并且该值是表示有效整数的字符串,那么它将正常工作。
  • @Sofffia 我已经编辑了我的问题。如果你知道的话请帮忙:)
  • 如果 $stmt->execute() 返回 false,则您的查询有误。使用$error = $this->conn->errorInfo(); var_dump($error); 来调试您的SQL 问题。或者,您可以使用$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 获取 SQL 错误异常(这是 OOP 中的首选方式)。

标签: php postgresql oop pdo


【解决方案1】:

你可以使用intval函数:

echo intval('042');                   // 42

【讨论】:

  • 我正在使用 oop pdo,所以我认为以这种方式回显变量不起作用。
【解决方案2】:
  1. 您可以让 PDO 进行转换
  2. 如果执行错误检查错误
  3. 判断是否成功的正确方法是检查受影响的行

$stmt->bindParam(1, $this->id_barang);
$stmt->bindParam(2, $this->nama_barang);
$stmt->bindParam(3, $this->harga_beli);
$stmt->bindParam(4, $this->harga_jual);
$stmt->bindParam(5, $this->created);

$stmt->execute() or die('error:'.$this->conn->errorInfo());

if($stmt->rowCount() > 0){
    return true;
}else{
    return false;
}

【讨论】:

  • 错误结果为:注意:数组到字符串的转换在C:\xampp\htdocs\bismillah\objects\barang.php on line 40 error:Array
猜你喜欢
  • 2010-11-05
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 2023-04-11
  • 1970-01-01
  • 2012-03-31
相关资源
最近更新 更多