Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2012, 14:55   #1
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию ODBC

PHP код:
$connect=obdc_connect("localhost""user""test") or die("Could not connect to ODBC database");
echo 
"Currently connected to ODBC database!"
odbc_close($connect); 
не выводится ни одно из двух сообщений.
как правильно соединиться через odbc?
Mortimoro вне форума Ответить с цитированием
Старый 03.08.2012, 15:01   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

У тебя в коде вместо odbc_connect указано obdc_connect.
Примеры соединения есть по ссылке, в т.ч. в комментариях.
Andkorol вне форума Ответить с цитированием
Старый 03.08.2012, 15:47   #3
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

точно, не заметил, спасибо.

у меня походу еще и odbc-драйвер не настроен на сервере судя по примерам в комментах.
Mortimoro вне форума Ответить с цитированием
Старый 04.08.2012, 18:07   #4
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
Плохо

по мануалу в комментах добавил через app-get модули, которых небыло, и обновил те, что были:

Код:
apache2
apache2-mpm-prefork
apache2-utils
apache2.2-common
libapache2-mod-php5
libdbd-mysql-perl
libmyodbc
libmysqlclient15off
mysql-client-5.0
mysql-common
mysql-server-5.0
mysql-server-core-5.0
odbcinst1debian1
php5
php5-cli
php5-common
php5-odbc
unixodbc
внес правку в /etc/odbc.ini
Код:
myodbc3      = MySQL ODBC 3.51 Driver

[myodbc3]
Driver         = /usr/lib/odbc/libmyodbc.so
Description  = MySQL ODBC 3.51 Driver
Server        = localhost
Port           = 3306
User           = shyam
Password    = mypass
Database    = mysql
Option        = 3  
Socket       = /var/run/mysqld/mysqld.sock
(только подставил свои логин, пароль, имя БД)

по мануалу надо было внести правку в /etc/odbcinst.ini, но у меня этот файл находится в /usr/share/libmyodbc/odbcinst.ini
Код:
[MySQL ODBC 3.51 Driver]
Description    = MySQL driver
Driver        = /usr/lib/odbc/libmyodbc.so
Setup        = /usr/lib/odbc/libodbcmyS.so
CPTimeout    =
CPReuse    =
UsageCount    = 1
php-скрипт также по мануалу, только логин, пароль, имя БД те же, что и в odbc.ini подставил:
PHP код:
<?
$conn 
odbc_connect("DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Database=mysql""shyam""mypass");

$sql "SELECT `user` FROM `user`";
$rs odbc_exec($conn,$sql);
echo 
"<table><tr>";
echo 
"<th>User Name</th></tr>";
while (
odbc_fetch_row($rs)){
 
$user odbc_result($rs,"user");
 echo 
"<tr><td>$user</td></tr>";
}
odbc_close($conn);
echo 
"</table>";
?>
эффект тот же - выводит только "User Name", а значения не выводит.
таблица user с полем user в БД есть.
видимо я неправильно понимаю схему работы по odbc, как проверить где именно ошибка подключения?
Mortimoro вне форума Ответить с цитированием
Старый 05.08.2012, 15:01   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Соединение odbc_connect что возвращает?
Ошибки можно отловить при помощи odbc_error и odbc_errormsg.
Andkorol вне форума Ответить с цитированием
Старый 06.08.2012, 13:03   #6
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

если использую так:
PHP код:
$conn odbc_connect("DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Database=basename""user""pass");

echo 
odbc_error($conn);
echo 
odbc_errormsg($conn); 
то odbc_connect, odbc_error и odbc_errormsg возвращают пустую строку.

если так:
PHP код:
$conn odbc_connect("DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Database=basename""user""pass");

echo 
odbc_error();
echo 
odbc_errormsg(); 
то odbc_error возвращает IM002, а odbc_errormsg возвращает "[unixODBC][Driver Manager]Data source name not found, and no default driver specified"

драйвер вроде как установился, но тоже не знаю как его проверить... может он банально должен быть запущен вручную как демон, но об этом в мануале ни слова.
Mortimoro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ASP и ODBC werser Помощь студентам 0 25.10.2010 00:28
odbc + c + firebird constantine94 Общие вопросы C/C++ 1 17.04.2010 20:06
visual c++ ODBC guest07 Общие вопросы C/C++ 0 11.04.2010 12:44
ODBC и MFC MadDog__ Win Api 0 06.02.2009 01:18
Odbc Apo Компоненты Delphi 7 11.03.2008 11:54