I'm not sure how to reproduce this error, but sometimes on saving node I receive this error:
PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'hidden' at row 1: UPDATE {menu_links} SET menu_name=:db_update_placeholder_0, plid=:db_update_placeholder_1, link_path=:db_update_placeholder_2, router_path=:db_update_placeholder_3, hidden=:db_update_placeholder_4, external=:db_update_placeholder_5, has_children=:db_update_placeholder_6, expanded=:db_update_placeholder_7, weight=:db_update_placeholder_8, depth=:db_update_placeholder_9, p1=:db_update_placeholder_10, p2=:db_update_placeholder_11, p3=:db_update_placeholder_12, p4=:db_update_placeholder_13, p5=:db_update_placeholder_14, p6=:db_update_placeholder_15, p7=:db_update_placeholder_16, p8=:db_update_placeholder_17, p9=:db_update_placeholder_18, module=:db_update_placeholder_19, link_title=:db_update_placeholder_20, options=:db_update_placeholder_21, customized=:db_update_placeholder_22 WHERE (mlid = :db_condition_placeholder_0) ; Array ( [:db_update_placeholder_0] => navigation [:db_update_placeholder_1] => 3605 [:db_update_placeholder_2] => node/11006 [:db_update_placeholder_3] => node/% [:db_update_placeholder_4] => [:db_update_placeholder_5] => 0 [:db_update_placeholder_6] => 1 [:db_update_placeholder_7] => 1 [:db_update_placeholder_8] => 0 [:db_update_placeholder_9] => 2 [:db_update_placeholder_10] => 3605 [:db_update_placeholder_11] => 3607 [:db_update_placeholder_12] => 0 [:db_update_placeholder_13] => 0 [:db_update_placeholder_14] => 0 [:db_update_placeholder_15] => 0 [:db_update_placeholder_16] => 0 [:db_update_placeholder_17] => 0 [:db_update_placeholder_18] => 0 [:db_update_placeholder_19] => menu [:db_update_placeholder_20] => Title [:db_update_placeholder_21] => a:3:{s:10:"attributes";a:0:{}s:18:"domain_menu_access";a:2:{s:4:"show";a:1:{s:2:"d4";s:2:"d4";}s:4:"hide";a:0:{}}s:5:"alter";b:1;} [:db_update_placeholder_22] => 1 [:db_condition_placeholder_0] => 3607 ) in menu_link_save() (line 3140 of /home/exarcnet/public_html/includes/menu.inc).

Using integer instead of boolean values for hidden field solved the problem:

function domain_menu_access_translated_menu_link_alter(&$item, $map) {
  global $_domain;
  // Do not hide menu items when in admin section, as then
  // the menu item could be disabled completely by accident.
  if (arg(0) != 'admin') {
    // Process menu items to be shown per domain.
    if (isset($item['options']['domain_menu_access']['show']) && count($item['options']['domain_menu_access']['show'])) {
      $item['hidden'] = (isset($item['options']['domain_menu_access']['show']['d' . $_domain['domain_id']]) && $item['options']['domain_menu_access']['show']['d' . $_domain['domain_id']]) ? 0 : 1;
    }
    // Process menu items to be hidden per domain.
    if (isset($item['options']['domain_menu_access']['hide']['d' . $_domain['domain_id']])) {
      $item['hidden'] = ($item['options']['domain_menu_access']['hide']['d' . $_domain['domain_id']]) ? 1 : 0;
    }
  }
}

Comments

maciej.zgadzaj’s picture

Status: Active » Closed (fixed)

Thanks albert78. Suggested fix makes a perfect sense, as column "hidden" in database is defined as integer. Pushed to both 6.x-1.x-dev and 7.x-1.x-dev branches.

taskjo’s picture

PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: ''

I am having just the same issue now while running a recruiter distribution for 7.x-1.0.

the exception is thrown when a new user tries to register. Pls how can i fix it.