It would be "really nice" if that function could be updated to log the issue rather than simply displaying it, i.e. changing the 1.5.5a version from:
function getBindVarValue($value, $type) {
$typeArray = explode(':',$type);
$type = $typeArray[0];
switch ($type) {
case 'csv':
return $value;
break;
case 'passthru':
return $value;
break;
case 'float':
return (!zen_not_null($value) || $value=='' || $value == 0) ? 0 : $value;
break;
case 'integer':
return (int)$value;
break;
case 'string':
if (preg_match('/NULL/', $value)) return 'null';
return '\'' . $this->prepare_input($value) . '\'';
break;
case 'stringIgnoreNull':
return '\'' . $this->prepare_input($value) . '\'';
break;
case 'noquotestring':
return $this->prepare_input($value);
break;
case 'currency':
return '\'' . $this->prepare_input($value) . '\'';
break;
case 'date':
if (preg_match('/null/i', $value)) return 'null';
return '\'' . $this->prepare_input($value) . '\'';
break;
case 'enum':
if (isset($typeArray[1])) {
$enumArray = explode('|', $typeArray[1]);
}
return '\'' . $this->prepare_input($value) . '\'';
case 'regexp':
$searchArray = array('[', ']', '(', ')', '{', '}', '|', '*', '?', '.', '$', '^');
foreach ($searchArray as $searchTerm) {
$value = str_replace($searchTerm, '\\' . $searchTerm, $value);
}
return $this->prepare_input($value);
default:
die('var-type undefined: ' . $type . '('.$value.')');
}
}
to
function getBindVarValue($value, $type) {
$typeArray = explode(':',$type);
$type = $typeArray[0];
switch ($type) {
case 'csv':
return $value;
break;
case 'passthru':
return $value;
break;
case 'float':
return (!zen_not_null($value) || $value=='' || $value == 0) ? 0 : $value;
break;
case 'integer':
return (int)$value;
break;
case 'string':
if (preg_match('/NULL/', $value)) return 'null';
return '\'' . $this->prepare_input($value) . '\'';
break;
case 'stringIgnoreNull':
return '\'' . $this->prepare_input($value) . '\'';
break;
case 'noquotestring':
return $this->prepare_input($value);
break;
case 'currency':
return '\'' . $this->prepare_input($value) . '\'';
break;
case 'date':
if (preg_match('/null/i', $value)) return 'null';
return '\'' . $this->prepare_input($value) . '\'';
break;
case 'enum':
if (isset($typeArray[1])) {
$enumArray = explode('|', $typeArray[1]);
}
return '\'' . $this->prepare_input($value) . '\'';
case 'regexp':
$searchArray = array('[', ']', '(', ')', '{', '}', '|', '*', '?', '.', '$', '^');
foreach ($searchArray as $searchTerm) {
$value = str_replace($searchTerm, '\\' . $searchTerm, $value);
}
return $this->prepare_input($value);
default:
trigger_error ("var-type undefined: $type ($value).", E_USER_ERROR);
}
}