PHP で PEAR::DB を使って UPDATE 文を発行したら DB Error: unknown error というエラーが発生しました。
DB Error: unknown error
このエラー内容では何の手掛かりにもならないので、もっと詳しいエラー内容を getDebugInfo() で取得してみました。
- getMessage() : DB Error: unknown error
- getDebugInfo() : INSERT INTO テーブル名 (列名1,列名2,列名3) VALUES(値1,値2,値3) [nativecode=1364 ** Field '列名4' doesn't have a default value]
エラーを getDebugInfo() で取得してみると、自分のエラーは以下の通りでした。
UPDATE users SET friend_num = 1 WHERE (id=45)
[nativecode=1558 ** Column count of mysql.proc is wrong.
Expected 20, found 16.
Created with MySQL 50077, now running 50152.
Please use mysql_upgrade to fix this error.]
Column count of mysql.proc is wrong. で検索してみると、mysql_upgrade をすれば解決すると書いてあったのですが、自分の場合 SQL 文で半角スペースを含んでいない箇所があったせいでした。
以上です。