adoDB как это?

WMix

герр M:)ller
Партнер клуба
adoDB как это?

Кто знает как адодб инсталируется, включается в код, или где взять описание на русском?

Всем привет

Решил я написать програмку или скажем проект такой маленький CMS. собирая данные наткнулся на adodb. идея классная а вот как это делать те с чего начать незнаю. с пхп и ДБ *mysql* я уже и сам относительно не плох но такие вещи по моему есть смысл использовать. перекопал нет а там токо реклама как это классно (по крайней мере на русс)

в обшем мне достаточно первые шаги далее я и сам разберусь или переспрошу

1. что обезательно иметь для соеденения с MySQL а что не надо.

2. как включить в код (include new... conect)

3. простейший SELECT, UPDATE, DELETE ...

4. ну и рекомендациям всегда рад

WMix
 

Макс

Старожил PHPClub
ты доку к adodb читал? там в архиве с adodb файл readme.htm, на английском, но примеров достаточно.
Подключение:
PHP:
$dbtype = "mysql";        // тип БД
$dbhost = "localhost";    // хост  БД
$dbuser = "root";         // логин для подключения к БД
$dbpass = "";             // пароль для подключения к БД
$dbname = "scripts";      // имя базы данных
$debug  = false;           // режим работы (если true - режим отладки)

$conn = &ADONewConnection($dbtype);
$conn->Connect($dbhost, $dbuser, $dbpass, $dbname);
$conn->debug = $debug;
запросы
PHP:
$res = $conn->Execute("SELECT * FROM tab");
if ($res && $res->RecordCount()) {
 while (!$res->EOF) {
  print_r($res->fields);
  $res->MoveNext();
 }
} else {
echo "not found";
}
Короче читай доку и смотри код классов.
 

WMix

герр M:)ller
Партнер клуба
я в данный момент какраз этим и занимаюсь
те читаю и пробую разобраться

4. ну и рекомендациям всегда рад
 

WMix

герр M:)ller
Партнер клуба
Я правильно понял, что запросы могут быть как в мysql а база при этом любая (в смысле все команды фунциклируют)?
 

Макс

Старожил PHPClub
Нет, у каждой СУБД свой SQL-диалект. Конечно они поодерживают стандарт SQL, поэтому простые SELECT- INSERT- DELETE- запросы будут одинаковыми, но все равно у всех свои особенности.

Прочти файл tips_portable_sql.htm который с adodb в архиве лежит
 

WMix

герр M:)ller
Партнер клуба
print_r($res->fields);
это круто но мне в переменную положить бы скажем

$my_daten=array()...
 

Макс

Старожил PHPClub
$res->fields - это массив
Ты с ними вообще работать умееш?
$my_daten = $res->fields;

или
echo $res->fields[0];
или
echo $res->fields['field_name'];
 

WMix

герр M:)ller
Партнер клуба
с масивами нет проблем а вот к объектам ещё не привык.
но для этого я и взял адо :).
или скажем по другому я понимаю объекты в яве-скр. или флаш а вот в пхп ято пока для меня слишком абстрактно.

ну и потом форум для новичков :)
 

WMix

герр M:)ller
Партнер клуба
другими словами это выгледит так

...
$res = $conn->Execute("SELECT * FROM tab");

if ($res && $res->RecordCount()) {
while (list( $key, $val ) = each( $res->fields )){
echo "KEY: ".$key." ";
echo "VAL: ".$val."<br>\n";
}
} else {
echo "not found";
}
 

Макс

Старожил PHPClub
Можно и так. Вообще в зависимости от
$ADODB_FETCH_MODE ключ может быть числовым (типа как если бы ты использовал mysql_fetch_row()) и именем поля (как mysql_fetch_array())

а если в скрипте напишеш
$ADODB_FETCH_MODE = ADODB_FETCH_BOTH
то тот вариант что ты привел лучше не использовать, так как в массиве будет каждая запись "дублироваться". То есть для SELECT-а по таблице:
| id | name |
----------------
| 1 | nnnn |
массив будет иметь такие значения:
[0] = > 1,
['id'] => 1,
[1] => 'nnn',
['name'] => 'nnn'

Я потому print_r() и написал в примере чтобы мог структуру полученных массивов посмотреть.
 

Larson

Новичок
Что-то я не пойму, зачем к мускулю коннектится через адодб?
Своих функций не хватает что-ли?
 

Макс

Старожил PHPClub
не надо путать adodb с COM-объектом ado. Это разные вещи.
adodb - это альтернатива к pear :: db, абстрактный слой для работы с БД написанный на PHP
 

WMix

герр M:)ller
Партнер клуба
да я уже это вижу ну с этим я разберусь по задаче

вот другой вопрос

$record = array();
$record["firstname"] = "Bob";
$record["lastname"] = "Smith";
$record["created"] = time();

$rs = $conn->Execute("SELECT * FROM ADOXYZ WHERE id = -1");

echo $conn->GetInsertSQL($rs, $record);
echo $conn->GetUpdateSQL($rs, $record);

я так и не понял что делают эти последние две функции
модифицируют запрос? у меня не вышло :(
 

Макс

Старожил PHPClub
Первая - создает SQL-запрос для вствки строки.
$sql = $conn->GetInsertSQL($rs, $record);
$conn->Execute($sql);

вторая - создает UPDATE-запрос:
$rs = $conn->Execute("SELECT * FROM ADOXYZ WHERE id = 10");
Там должно быть не -1 а ID записи которую хочеш изменить.
$sql = $conn->GetUpdateSQL($rs, $record);
$conn->Execute($sql);
 

WMix

герр M:)ller
Партнер клуба
я потренеруюсь пока как что не пойму спрошу
 

WMix

герр M:)ller
Партнер клуба
о последнем

$rs = $conn->Execute("SELECT * FROM ADOXYZ WHERE id = 10");
Там должно быть не -1 а ID записи которую хочеш изменить.
$sql = $conn->GetUpdateSQL($rs, $record);

он может скажем сразу несколько сток поменять?
типа: ("SELECT * FROM ADOXYZ WHERE id > 10 AND id <100");

если да то как
 

WMix

герр M:)ller
Партнер клуба
tony2001

я знаю что ты головастый парень
просто был вопрос за адо

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