avatar_epmak

Как подключить ODBC на сайте: примерное объяснение. КАК это должно работать?

Автор epmak, 2014 Июнь 20, 18:54

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlineodbcdevelopmentподключениесайтобъяснениеработаразработки

epmak

Итак, навеяно темой вафлана про продажу модуля аж за 15 баксов для работы сайта с odbc. Я не буду полностью забирать его хлеб, но лишь напомню ему про тему с профессором, по поводу галереи.


...на php 5.х перестала существовать функция mssql_connect, ибо она устарела + появился замечательный класс PDO, который, в общем-то упростил жизни, попутно несколько прибив фрейморки для работы с бд, но эт все лирика, которая многим из вас, как админам вообще не интересна.
Итак, поехали.

Создаем файлик, назовем его, например, odbc_addon.php и сунем в него
примерно следующий текст
<?php
$odbc_handler
="";

function 
mssql_connect($servername$username,$passwd)
{
return array(
$servername$username,$passwd);
}

function 
mssql_select_db($dbname,$pointer)
{
global 
$odbc_handler;
$odbc_handler odbc_connect("Driver={SQL Server};Server=".$pointer[0].";Database=".$dbname.";",$pointer[1],$pointer[2]) or die(odbc_errormsg($odbc_handler));
}

function 
mssql_query($query)
{
global 
$odbc_handler;
$n odbc_exec($odbc_handler,$query);
if(
odbc_errormsg($odbc_handler)) die(@odbc_errormsg($odbc_handler));
return 
$n;
}

function 
mssql_fetch_array($q)
{
return 
odbc_fetch_array($q);
}

function 
mssql_fetch_row($query)
{
$i = @odbc_num_fields($query);
$status = @odbc_fetch_row($query);
if (
$status !=1) return false;
$field=1;
while (
$field<=$i)
{
$arr[($field-1)] = @odbc_result($query,$field);
$field++;
}
return 
$arr;
}

if (!
function_exists('odbc_fetch_array')) {
function 
odbc_fetch_array($result$rownumber=null) {
$array = array();
if (!(
$cols odbc_fetch_into($result$result_array$rownumber))) {
return 
false;
}
for (
$i 1$i <= $cols$i++) {
$array[odbc_field_name($result$i)] = $result_array[$i 1];
}
return 
$array;
}
}
сам файлик суем в папку includes (например).

открываем config.php и смотрим в самом низу код
$mssql_connect = @mssql_connect($mmw[sqlhost],$mmw[sqluser],$mmw[sqlpass]) or die("$sql_die_start MSSQL server is offline OR I can't Access to it! $sql_die_end");
@mssql_select_db($mmw[database], $mssql_connect) or die("$sql_die_start Database don't exists OR I can't Access to it! $sql_die_end");
Прямо перед ним вписываем примерно так:
if(!function_exists("mssql_connect"))
{
require_once("includes/odbc_addon.php");
}

то есть, мы тупо берем, и смотрим, если нету функции mssql_connect, то, вестимо, остальных mssql_<xxx> нету тоже, по сему, подсовываем в файлике odbc_addon.php все, что надо вебу.


сразу говорю, что реализованы не все функции, которые используются в mmw, но для продвинутых пользователей, не хотящих платить 15 баксов, но сильно нуждающихся в подобном модуле, будет весьма полезно. дописать осталось буквально 2 функции, одна из них mssql_get_last_message, если чуть подумать, то, опять же, решение можно найти.

И еще, знаю, что появится много хейтеров: против вафлана я, в принципе, ничего не имею. вообще ничего и ни капельки, но мне бывает забавно смотреть, когда сначала адекватных людей смешивают за что-то с говном, а потом совершают такие же поступки, за которые сами же смешивали с говном.

Молдованен

Залил сайт на вэб хост , всё равно не подключается к MSSQL( базе на другой машине) известно что вэб хост на линуксе.


Похожие темы (5)