нужно срочно перейти с mysql на interbase, а литературы нет

saac

Новичок
neko
я бы и сам никогда на интербаз не сел . на работе просто нехотян ни какюю другую базу ставить , мол говорят делай на том что уже стоит. Я бы с удовольствием сделал бы на оракле , хотя его даже и в глаза невидел(Так для изучения)
 

saac

Новичок
neko
да, а с каких соображениях на машину ставить только 1 субд , если она и то не вообще не нагружена , а мои потребнасти в другой субд были бы так же малы.
 

neko

tеam neko
видимо дело в том что ты не свои потребности должен удовлетворять

если для тебя mysql, ib и oracle это "один черт" могу только посочувствовать
 

saac

Новичок
народ , обьясните основные функции рнр и interbase , а то уже умираю
 

Макс

Старожил PHPClub
saac
ты издеваешься ?
Во многих функциях, которые тебе прийдется использовать все точно так-же как и при работе с mysql.
mysql_connect -> ibase_connect
mysql_query -> ibase_query
и т.д.

Будет больше толку если ты спросишь, что именно тебе не понятно. Ответ "Ничего не понятно" не принимается.
На крайний случай, если с английским вообще завал, прочитай перевод на http://phpclub.net/manrus/f/ref.ibase.html

-~{}~ 17.08.04 17:02:

Например, что тебе не ясно с [m]ibase_connect[/m] ?
 

saac

Новичок
не . конект у меня работает с запросом у меня тоже проблем нет , а вот я немогу вывести количество строк в таблице , а так же я незнаю как задать цикл что бы эта таблица печаталась.
к примеру это работает на майскл , а как написать на интербазе я незнаю.
$x = 0;
while ($x < mysql_numrows($result)):
$vopros = mysql_result($result, $x, 'vopros');
$otvet = mysql_result($result, $x, 'otvet');
?>
<a href="table0.php?vopros=<? echo"$vopros" ?> & otvet=<? echo"$otvet" ?>"> <? echo "$vopros" ?> </a>
<br><br><?
$x++;
endwhile;
 

Макс

Старожил PHPClub
начни с того, что перепиши этот код так, чтобы в нем не было mysql_num_rows и mysql_result. В этом коде они не нужны.
Здесь достаточно простого mysql_fetch_*(array | row | assoc | object)
Перепиши чтобы этот код использовал [m]mysql_fetch_assoc[/m], потом сам сможешь переписать все на ibase (тебе достаточно будет функции [m]ibase_fetch_assoc[/m])
 

saac

Новичок
народ , неподскажете почему неработает insert. я пишу вот такой скрипт , вроде все работает без ошибот , а в базу данных нечего не записуется. <?
$username='sysdba';
$password='masterkey';
$host = 'c:/library.gdb';
@ibase_connect($host, $username, $password);
#$stmt = 'INSERT INTO site ("vopros","vid") VALUES("$vopros","$vid")';
#$stmt = 'SELECT * FROM site';
$query ='insert into (vopros) site values (65465)';
@ibase_query(db_connect(),$query) or die ("неработает");
ibase_close();
?>
 

flipper

Guest
Может уже поздно, но всё же....
PHP:
$query = "SELECT * FROM site where otvet is not null";
$result = mysql_query($query);
$x = 0;
while ($x < mysql_numrows($result)):
$vopros = mysql_result($result, $x, 'vopros');
$otvet = mysql_result($result, $x, 'otvet');
?>
<a href="table0.php?vopros=<? echo"$vopros" ?> & otvet=<? echo"$otvet" ?>"> <? echo "$vopros" ?> </a>
<br><br><?
$x++;
endwhile;
mysql_close();
?>
для Interbase/Firebird я переписал бы примерно так:
PHP:
$sql = "SELECT ...";
$query_result = ibase_query($db_handle, $sql);
if ($query_result)
{
   while ($row = ibase_fetch_assoc($query_result))
   {
     echo "вопрос: ".$row['vopros'];
     echo "ответ: ".$row['otvet'];
     echo "вид: ".$row['vid'];  
     //..... 
   }
   ibase_free_result($query_result);
}
 

Макс

Старожил PHPClub
echo "вопрос: ".$row['vopros'];
echo "ответ: ".$row['otvet'];
echo "вид: ".$row['vid'];
flipper
насколько я знаю firebird все поля преобразует к верхнему регистру, то есть надо писать
PHP:
     echo "вопрос: ".$row['VOPROS'];
     echo "ответ: ".$row['OTVET'];
     echo "вид: ".$row['VID'];
Можно при создании таблиці поля в кавычки взять, тогда сохранится регистр, но и в запросах надо кавычки использовать.
Если что неправильно сказал, поправьте. Я сам не очень разобрался с этими преобразованиями регистра
 

M_Maniac

Guest
Автор оригинала: Макс
Во многих функциях, которые тебе прийдется использовать все точно так-же как и при работе с mysql.
mysql_connect -> ibase_connect
mysql_query -> ibase_query
и т.д.
Все остальное еренда.
А с этим как быть??
mysql_list_tables -> ??
 

saac

Новичок
M_Maniac
посмотри здесь может что нибуть найдешь
http://www.technotet.ru/ib_php/ib_php.html

-~{}~ 22.09.04 13:05:

как мне быть. Я раньше (когда использовал субд mysql) я пользовался функцией mysql_numrows для подчета кол-ва записей в таблице:
$query = "SELECT * FROM site where vid = 'nc'";
$result = mysql_query($query);
$n1 = mysql_numrows($result);
echo "научных сотрудников = $n1";

Но теперь я использую интербаз , а как известно подобной функции там нет и я решил воспользоватся SQL запросом :
select count (*) from site where vid='nc'
но как мне отобразить кол-во строк на экране. Когда я пишу так:
$query = "select count (*) from site where vid='nc'";
$q=ibase_query($query);
echo $q;
мне выдается совершенно те то что мне надо:
Resource id #3
 

flipper

Guest
Автор оригинала: saac
M_Maniac
посмотри здесь может что нибуть найдешь
http://www.technotet.ru/ib_php/ib_php.html

-~{}~ 22.09.04 13:05:

как мне быть. Я раньше (когда использовал субд mysql) я пользовался функцией mysql_numrows для подчета кол-ва записей в таблице:
$query = "SELECT * FROM site where vid = 'nc'";
$result = mysql_query($query);
$n1 = mysql_numrows($result);
echo "научных сотрудников = $n1";

Но теперь я использую интербаз , а как известно подобной функции там нет и я решил воспользоватся SQL запросом :
select count (*) from site where vid='nc'
но как мне отобразить кол-во строк на экране. Когда я пишу так:
$query = "select count (*) from site where vid='nc'";
$q=ibase_query($query);
echo $q;
мне выдается совершенно те то что мне надо:
Resource id #3
всё правильно $q утебя это идентификатор результата запроса, а не результат.
используй ibase_fetch_row или ibase_fetch_assoc
например:
PHP:
...
$q=ibase_query($query);
if ($q)
{
  $row=ibase_fetch_row($q);
  echo $row[0].
}
...
 

saac

Новичок
Автор оригинала: flipper
всё правильно $q утебя это идентификатор результата запроса, а не результат.
используй ibase_fetch_row или ibase_fetch_assoc
например:
PHP:
...
$q=ibase_query($query);
if ($q)
{
  $row=ibase_fetch_row($q);
  echo $row[0].
}
...
ага , понятно . большое спасибо
 
Сверху