Hello!
My name is Anders and I hope someone can direct me towards a good solution on my problem, which I get everywhere (homescreen for instance) except in the admin area (Modules, Configurations etc):
PDOException: SQLSTATE[22P02]: Invalid
text representation: 7 ERROR: invalid input syntax for integer: "all"
LINE 4: WHERE (base.uid IN ('all')) ^: SELECT base.uid AS uid,
base.name AS name, base.pass AS pass, base.mail AS mail, base.theme AS
theme, base.signature AS signature, base.signature_format AS
signature_format, base.created AS created, base.access AS access,
base.login AS login, base.status AS status, base.timezone AS timezone,
base.language AS language, base.picture AS picture, base.init AS init,
base.data AS data
FROM {users} base
WHERE (base.uid IN (:db_condition_placeholder_0)) ; Array
( [:db_condition_placeholder_0] => all
) i DrupalDefaultEntityController->load() (rad 196 av /var/www/drupal/includes/entity.inc).
It does select * from users where uid in ("all"); which doesn't work since uid is a number in the users table.
I run drupal 7.4 with alot of modules and this happened after upgrading date, calendar, fullcalendar and ctools to the latest development releases as of 2011-07-29. There was something running when I pressed update.php but I can't find what. I did some research with var_dump and debug_backtrack and found a workaround:
--- /tmp/menu.inc.old 2011-07-30 02:38:00.566339402 -0700
+++ includes/menu.inc 2011-07-30 02:37:26.805708180 -0700
@@ -902,6 +902,7 @@
}
// menu_tree_check_access() may set this ahead of time for links to nodes.
if (!isset($item['access'])) {
+ if (count($map) == 3 && $map[0] == "user" && $map[1] == "all" && $map[2] == "bookmarks") { $map[1] = 0; }
if (!empty($item['load_functions']) && !_menu_load_objects($item, $map)) {
// An error occurred loading an object.
$item['access'] = FALSE;
If map == ("user","all","bookmarks") I change the string "all" to integer 0.
the problem boils down to the function that gets called right after my fix above, with $uid = $map[1]:
function user_load($uid, $reset = FALSE) {
$users = user_load_multiple(array($uid), array(), $reset);
return reset($users);
}
According to the comment just above the function, uid has to be a number (not the string "all"). I would like to find the right module and fix that instead.
After a lot of fiddling with disabling and enabling module I got things "working" after disabling all installed modules including the addons that was shippet with Drupal itself. When I then enable the core module Block, I get the error again!
This letter is getting very lengthy, so I won't burden you with more info. I got big stacktraces and more stuff to write, but I don't know what interest you in this problem. All I want is help to find the real thing, where is the real error? How to find it?
Just do avoid unnecessary flames:
I did a little bit of screwup with my drupal site. Feel free to blame
me about backups and things like that, yes it was due to a
missunderstanding (bad crontab-job) and I didn't check for them...:-) Feel also free to complain
about the usage of alpha/devel-modules but to get modules for drupal 7,
since that was the version someone selected,you have to use alpha/beta/devel versions.
Thanks alot for any help/guidens to the solution of the problem.
Anders Andersson