Господа, выполняю запрос к бд, возвращаются значения 'Resource id #n' под разными номерами. укажите, пожалуйста, что я не так понимаю? почему не удается вернуть нормальные значения из бд? и что такое этот загадочный 'Resource id #n'?
заранее спасибо за помощь.
Комментарии
http://api.drupal.ru/api/group/database/6
db_result(db_query('sql запрос'));
и смотри phpadmin'ом что там вообще должно возвращать
благодарю. подскажите, пожалуйста, как будет выглядеть код запроса к базе, (таблица ниже), с фиксом от иньекции, если запрос делает юзер с uid равным тому, который обозначен в записи, т.е. $user->uid
понимаю, что ошибка простейшая и скорее всего в синтаксисе, но не могу понять где:
__________
require_once('...');
global $user;
$result = (mysql_query("SELECT f_url FROM table_name WHERE uid = '$user->uid'");
while ($done = mysql_fetch_assoc($result))
{
var_dump ($done);
}
mysql_close();
$result = mysql_result(mysql_query("SELECT f_url FROM table_name WHERE uid = '$user->uid'"));
так что ли? если так, то будет "Wrong parameter count for mysql_result()"
не зря же прошу поправить конкретный пример, чтобы разобрать ошибку на практике.
какой mysql_result если написано db_result
внимательней читайте что вам пишут, и реально потратье время на внимательное чтение апи по ссылке - это очень поможет далее...
еще сам не могу решить, правда туплю или прикидываюсь, но с db_query получаем:
Call to undefined function db_result()
это нужно вставлять в ноду или блок при включенном формате ввода php
"SELECT f_url FROM table_name WHERE uid = '$user->uid'"
- неправильно
"SELECT f_url FROM {table_name} WHERE uid = %d", $user->uid
да, именно так и делаю:
но получаю
Fatal error: Call to undefined function db_result() in /public_html/modules/php/php.module(75) : eval()'d code on line 6
таблица без префикса, поэтому фигурные скобки опускал до последнего ответа. %d, судя по всему,- это защита от иньекции, насколько понимаю.
а если заменить db_ на mysql_ получим 2 warning, но скрипт будет выполнен:
# Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource в функции eval().
# Warning: Wrong parameter count for mysql_result() в функции eval()
в этом случае, var_dump() вернет NULL
а напиши какие ошибки он пишет - для случая db_ и mysql_?
для скрипта формата mysql_result(mysql_query('sql запрос')); получаем следующие ошибки:
* Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource в функции eval() (строка 6 в файле /public_html/modules/php/php.module(75) : eval()'d code).
* Warning: Wrong parameter count for mysql_result() в функции eval() (строка 6 в файле /public_html/modules/php/php.module(75) : eval()'d code).
а если делаем ровно так, как предлагали выше db_result(db_query('sql запрос')); то получаем:
Fatal error: Call to undefined function db_result() in /public_html/modules/php/php.module(75) : eval()'d code on line 6
либо функции db_result и db_query нужно предварительно вызывать, как глобальную переменную, либо их нужно объявить, я так понимаю ошибки db_. а для первого случая с mysql_ где-то не верен синтаксис.
вот мой код
<?php require_once('includes/database/mysql/dbcfg.php');
global $user; $result = mysql_result(mysql_query("SELECT f_url FROM {server} WHERE uid = %d", $user->uid)); var_dump ($result); mysql_close(); ?>
блин тока счас обратил на версию друпала((
http://xandeadx.ru/blog/drupal/259
новый абстрактный уровень для работы с базой
PS так непривычно что работаешь уже не с самой новой версией)))
require_once('includes/database/mysql/dbcfg.php'); - это наверно не нужно писать все подключается и прописывается что нужно сразу при работе
http://drupal.org/developing/api/database
это жесть, спасибо))) если есть у кого опыт пользования подобным кодом - поделитесь, пожалуйста, желательно с пояснениями что и почему. заранее спасибо. http://api.drupal.org/api/drupal/includes--entity.inc/class/EntityFieldQ... на примере ноды не совсем понимаю.
вот на этот скрипт cms говорит
EntityFieldQueryException: Объект <em class="placeholder">server</em> не имеет таблиц в базе. в функции EntityFieldQuery->propertyQuery()
<?php
global $user; $query = new EntityFieldQuery; $result = $query
->entityCondition('entity_type', 'server')
->propertyCondition('uid', $user->uid)
->execute();
var_dump($result);
?>
Drupal 7
воспользовавшись информацией отсюда http://xandeadx.ru/blog/drupal/88 столкнулся с проблемой:
Recoverable fatal error: Object of class DatabaseStatementBase could not be converted to string в функции eval() (строка 14 в файле /public_html/modules/php/php.module(75) : eval()'d code).
эту ошибку выдает следующая строка:
<?php
$query = db_query("SELECT f_url FROM {server} WHERE uid= :uid", array(
':uid' => $user->uid,
));
echo
$query;?>
что характерно, var_dump ($query) выдает всю поднаготную, включая имя базы, пользователя, реальный пароль и т.д.
["dbh"]=>
object(DatabaseConnection_mysql)#2 (14) {
["shutdownRegistered:protected"]=>
bool(false)
["target:protected"]=>
string(7) "default"
["key:protected"]=>
string(7) "default"
["logger:protected"]=>
NULL
["transactionLayers:protected"]=>
array(0) {
}
["driverClasses:protected"]=>
array(5) {
["SelectQuery"]=>
string(11) "SelectQuery"...
(часть списка)
насколько понимаю, проблема в
<?php
echo
?>
просто получение значения поля проходит на ура! а если делать выборку с условием, тогда и возникает эта ошибка.
где проблема?
заранее спасибо