|
|
|
| На одном из веб серверов столкнулся с такой проблемой, что при исполнении функции с sql запросами внутри, выполняемые посредством mysql_query() выводилась ошибка:
mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO)
|
Если изобразить схему выполнения максимально упрощенно, то выглядеть это будет примерно так:
include("connect_sql.php"); // Выполнение подключения к базе данных.
function common_func() //функция, с sql запросом внутри.
{
$q=mysql_query("SELECT COUNT(*) FROM `table` WHERE `set`='1';");//Это выдает ту самую ошибку.
return mysql_fetch_assoc($q);
}
//Если написать тоже самое вне функции, то выполняется все нормально.
|
Как решить эту проблему?
p.s.
Просьба варианты с отдельным подключением внутри функции не предлагать. Тоже касается и использования global. Моя цель узнать почему на одних web-серверах это работает, а на других нет. И как сделать, чтобы работало. | |
|
|
|
|
|
|
|
для: Dr Lines
(22.05.2009 в 13:49)
| | я не профи, но зачем в кавычки загонять названия полей, я делаю примерно так
$q=mysql_query("SELECT COUNT(*) FROM table WHERE set='1' ");
|
без знака ; в конце запроса и без знака ` | |
|
|
|
|
|
|
|
для: Den*s
(22.05.2009 в 15:32)
| | Делаю так, чтобы было более читабельнее. Да и находить потом нужные части кода проще. Если например скрипт на 1000 строчек - и надо везде заменить название полей таблиц. Эти "ненужные кавычки" какраз и помогут.
Все ради удобства.
-------------------
Ну что, кто-нибудь знает как решить мою проблему? | |
|
|
|
|
|
|
|
для: Den*s
(22.05.2009 в 15:32)
| | попробуйте использовать в качестве имени таблицы зарезервированное слово и расскажите что получится без кавычек
Ваш запрос, к слову, прекрасная иллюстрация вышесказанного - он абсолютно нерабочий, несмотря на то, что Вы утверждаете обратное. | |
|
|
|
|
|
|
|
для: Loki
(22.05.2009 в 15:46)
| | Дело не в правильности запроса. Я его вообще от "бадлы" нарисовал. Проблема в том что в функциях по каким-то причинам не видно основного подключения к базе данных.
Читайте внимательнее первый пост. | |
|
|
|
|
|
|
|
для: Dr Lines
(22.05.2009 в 16:29)
| | при чем тут первый пост? | |
|
|
|
|
|
|
|
для: Loki
(22.05.2009 в 17:16)
| | Я не просил разбирать на правописание макет, который нарисовал только лишь для наглядности проблемы. Проблему уже несколько раз описал. %) | |
|
|
|
|
|
|
|
для: Dr Lines
(22.05.2009 в 17:40)
| | Да Ваш пост я вообще ни читал. Я не Вам отвечал. | |
|
|
|
|
|
|
|
для: Den*s
(22.05.2009 в 15:32)
| | В корне неверно. Знак ` - обязателен, позволит избежать проблеи при именовании таблиц(столбцов)
А по теме:
<?php
$db = mysql_connect(.....);
....
function foo($db) {
mysql_query('...', $db);
}
// Или
function foo() {
global $db;
mysql_query('...');
}
?>
|
| |
|
|
|