2010-12-27 13 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

2つの解決策 - 実際にメッセージ値に「null」が必要な場合は、「メッセージ」列をデータベースでNULLにすることができます。あなたがアプリケーションの他の部分を壊す場合、そうすることに注意する必要があります。 - 空白のようなダミー値を渡します。つまり、 "none"のようなOR文字列、または実際にメッセージがないことを示す文字列です。