【发布时间】:2014-10-11 12:41:47
【问题描述】:
如何使用 php pdo 将字符串数据类型转换为整数?我尝试使用PDO::PARAM_INT 和PDO::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