Простой запрос SQL терпит неудачу - PullRequest
0 голосов
/ 08 ноября 2011

Я пытаюсь подсчитать количество ролей в моей базе данных Drupal и в результате выполнить другой оператор. Но по некоторым причинам это терпит неудачу. Что я делаю не так?

$numberofroles = db_query('SELECT COUNT(rid) FROM {role}');
$roles = 1;

while ($roles < $numberofroles) {
        db_query('INSERT INTO {taxonomy_access_default} (vid, rid, grant_view, grant_update, grant_delete, grant_create, grant_list) VALUES(0, '.$roles.', 1, 0, 0, 0, 1)');
        $roles++;
}

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

Вы забыли?-> fetchField ()?

Drupal6:

$val = db_result(db_query({...}))

Drupal7:

$val = db_query({...})->fetchField();

0 голосов
/ 08 ноября 2011

Что возвращает db_query? Ваш запрос SQL вернет один столбец и одну строку, но возвращает ли db_query целое число или результирующий набор в виде массива?

напечатайте $ numberofroles (подсказка: $ numberOfRoles намного проще для чтения) и посмотрите, каково значение. Если он печатается как array(), то вам нужно обработать массив и извлечь желаемое значение, скорее всего $numberofroles[0][0]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...