2010-12-27 2 views
0

나는 다음과 같은 PHP 코드를 가지고 :PHP 배열 쿼리

$query = array(
    $this->userid_to, 
    $userid_to, 
    $this->gibid, 
    $this->card_type, 
    $message, 
    $isDeck 
); 
print_r($query); 
$sql = "INSERT INTO 
    cards (
     userid_from, 
     userid_to, 
     gibid, 
     card_type, 
     message, 
     isDeck, 
     createdon 
    ) VALUES (?,?,?,?,?,?,current_timestamp)"; 
Db::execute($sql,$query); 
$this->cardid=Db::getLastInsertId(); 

나는 그래서 나는이 오류가 무엇입니까 $ 메시지 변수를 빈 전달하고이 작업을 실행하는 동안 : 내가 전달하려는 경우

Array (
    [0] => 1 
    [1] => 4 
    [2] => 0 
    [3] => V 
    [4] => 
    [5] => N) 

Fatal error: Uncaught exception 
'PDOException' with message 'Database 
error [23000]: Column 'message' cannot 
be null, driver error code is 1048' in 
/var/www/ryapi/Db.php:179 Stack trace: 
0 /var/www/ryapi/Db.php(54): Db::_query('INSERT INTO car...', 
    Array) 
1 /var/www/ryapi/card.php(79): Db::execute('INSERT INTO car...', 
    Array) 
2 /var/www/ryapi/index.php(173): Card->givecard('4', NULL, NULL) 
3 {main} thrown in /var/www/ryapi/Db.php on line 179 

$message을 비워두면이 오류를 어떻게 제거 할 수 있습니까?

+1

코드 블록과 견적 블록이 동일하지 않습니다. – BoltClock

+0

@BoltClock 정보를 제공해 주셔서 감사합니다. – XMen

답변

0

$message이 실제로는 빈 문자열이며 NULL이 아닌지 확인하십시오.

1

이 열은 (null)이 아니어야한다고 생각합니다. 열을 null로 만들 수 있는지 확인하십시오.

(null)과 빈 문자열이 동일한 "값"이 아닙니다.

0

두 가지 해결책 - 메시지 값에 "null"이 실제로 필요한 경우 데이터베이스에서 "message"열을 null 허용으로 만듭니다. 응용 프로그램의 다른 부분이 손상되면 그렇게하는 데주의해야합니다. - 공백과 같은 더미 값을 전달합니다 (예 : "없음"과 같은 OR 문자열 또는 실제로 메시지가 없음을 나타내는 문자열).