[PHP][PEAR] Column count of mysql.proc is wrong. エラーの解決方法

PHP で PEAR::DB を使って UPDATE 文を発行したら DB Error: unknown error というエラーが発生しました。

getMessage() でのエラー内容

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() で取得してみると、自分のエラーは以下の通りでした。
 

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 文で半角スペースを含んでいない箇所があったせいでした。

以上です。

参考情報