2014-10-11 5 views
-1

어떻게 PHP pdo로 문자열 데이터 유형을 정수로 변환합니까? 내가 과 PDO::PARAM_STR을 사용하려고 시도했지만 return false이고 postgresql에 데이터를 삽입하려고 할 때 오류가 발생했습니다. 이 문제를 해결할 방법이 있습니까?PHP pdo에서 문자열을 정수로 변환

여기

코드 :

기능 (생성) {

// 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를 반환 및 기능()가 false를 만들 경우 내가 경고 사용하고 있습니다. harga_beli 및 harga_jual은 postgresql의 정수 데이터 유형입니다. HTML 양식에서 자바 스크립트 함수를 사용하여 0을 구분합니다. 예 : 60.000, 숫자는 데이터베이스의 정수 여야합니다.

+1

오류가있는 경우 질문에 오류 + 설명을 입력하십시오. 질문 할 때 항상 유용합니다. 또한 코드의 발췌 부분을 보여주기 때문에 자신이하는 일이 무엇보다 명확합니다. 질문 작성에 대한 도움말을 보려면 도움말 센터를 참조하십시오. http://stackoverflow.com/help – hakre

+0

오류가 발생했습니다. – Shoe

+0

PDO 데이터베이스 드라이버는 PHP 매개 변수를 사용할 때 해당 매개 변수를 자동으로 '강제 변환'합니다. 즉 PDO :: PARAM_INT라고 말하면 값이 유효한 정수를 나타내는 문자열이면 올바르게 작동합니다. –

답변

1

당신은 intval 기능을 사용할 수 있습니다 :

echo intval('042');     // 42 
+0

나는 그런 식으로 변수를 에코 pdo를 사용하고있어 그 생각을하지 않는다. –

0
  1. 당신은 실행하면 변환을
  2. 을 할 PDO로 떠날 수있는 것은 오류에 대한 허위 검사입니다
  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; 
} 
+0

오류 결과는 다음과 같습니다. 알림 : 40 행의 C : \ xampp \ htdocs \ bismillah \ objects \ barang.php에있는 문자열 변환에 대한 배열 error : Array –