在php pdo中将字符串转换为整数

时间:2014-10-11 12:41:48

标签: php postgresql oop pdo

如何使用php pdo将字符串数据类型转换为整数?我尝试使用PDO::PARAM_INTPDO::PARAM_STRreturn false尝试将数据插入postgresql时出错。有什么方法可以解决这个问题吗?

这里是代码:

function create(){

    // 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;
    }

}

如果函数create()为false,则返回false并且我正在使用alert。 harga_beli和harga_jual是postgresql中的整数数据类型。在HTML格式我正在使用javascript函数来分隔零。例如:60.000,数字应该是数据库中的整数。

2 个答案:

答案 0 :(得分:1)

您可以使用intval功能:

echo intval('042');                   // 42

答案 1 :(得分:0)

  1. 您可以将其留给PDO进行转换
  2. 如果执行错误则检查错误
  3. 了解它是否成功的正确方法是检查受影响的行

  4. $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;
    }