User Contributed Notes Sybase functions |
|
20-Feb-2000 04:18 |
|
To store an image file into Sybase try this :
$data = bin2hex(fread(fopen($image,"r"), filesize($image)));
//don't forget the 0x before the hex data.
if(! sybase_query("INSERT INTO test_image (image) VALUES
(0x".$data.")")) die ("Unable to store the
image.");
To retrieve it just do a select and use a hex2bin function (this one has
been submitted by [email protected] and is the fastest) :
function hex2bin($data) {
$len = strlen($data);
return pack("H" . $len, $data);
}
PS : use CT-lib rather than DB-lib (Sybase doesn't work on it anymore!)
|
|
01-Mar-2000 07:34 |
|
Poor documentation on sybase support!! Here's how I made it work... First
get the linux ASE from sybase (maybe the ctlibs provided at php.net will
do fine, too) Install the ASE rpm. (some distributions don't have system
libs etc in the rpm database so you might get some dependency errors. If
your systems fits the requirements install with "ignore
dependencies") Recompile php with option
--with-sybase-ct=/dirtoyoursybasehome. Then you need to set the env
variable for (at least)your apache user by export
SYBASE=/dirtoyoursybasehome. Now you need to set up your servers (like
DSNs for ODBC). Edit the file $SYBASE/interfaces and add your server
entries:
SERVERNAME
query tcp ether 172.16.1.4 4100
master tcp ether 172.16.1.4 4100
(change IP/FQHN and port to your setup) Now you can check your config by
using
$SYBASE/bin/isql -S SERVERNAME -U DBUSER -P PASSWD
If you get a prompt you have connected to your sybase! Hurray! Now you can
try with php
$db=sybase_connect("SERVERNAME","DBUSER","DBPASSWD");
And... Voila!
|
|
06-Mar-2000 07:57 |
|
I struggled to get this to work for a week. Here's a tip. Log on to your
system using the same login as your web server, probably
"nobody". Using this account, make sure you can get isql to
work. In my case, I had to change the permissions on the /opt/sybase
folder, as well as chmod the /opt/sybase/interfaces file to 644. (It was
600 by default, and did not allow anyone but root to read it.) Once I did
this, things started to happen...
|
|
22-Mar-2000 12:28 |
|
If you get a segfault with sybase-ct, add a en_US entry to your
$SYBASE/locales/locales.dat file:
<PRE>
[linux]
locale = en_US, us_english, iso_1
...
</PRE>
|
|
09-Jul-2000 01:03 |
|
Amigos, pay attention: sybase_get_last_message() is gone! Read logs or set
track_errors=On and use $php_errormsg instead.
|
|
18-Aug-2000 08:41 |
|
I would STRONGLY recommend using the ct library over the db library when
compiling sybase support with php4+. I ran into strange http child seg
faults when trying to issue multiple sql statements in one php page.
Using ct-library there is no problem.
|
|
06-Sep-2000 07:13 |
|
about sybase-ct library
You can download the file from php.net but the samples in the tar (and
php) maybe not compile I have this problem in some systems (but not in
others with old librarys and old gcc).
Try freetds from www.freetds.org that is ok!
System wthout trouble
Debian 2.1 gcc (2.7.2.3) libc-2.0.7.so
System With trouble
Debian 2.2 gcc (2.95.2) libc-2.1.3.so
RedHat 6.2 gcc [egcs] (2.91.66) libc-2.1.3.so
Please refer to mssql if you try to connect to MS SQL Server!!!
|
|
28-Sep-2000 03:12 |
|
The best place to get Sybase's RPMs:
|
|
09-Oct-2000 05:20 |
|
A bit more about blobs:
If you want to retrieve blobs without them getting truncated, do a 'set
textsize value' query first.
|
|
13-Oct-2000 07:17 |
|
This should make the image/blob subject rather complete:
PHP 3 seems to have a bug with image columns in sybase. Apache gets a
segmentation fault when trying to retrieve an image column with more than
a certain amount of characters (even when using set textsize).
The work around is to use text columns instead. They have the same
capacity, only you need to convert the data to ASCII (e.g. Hex, see
examples in earlier contributions, bin2hex). Remember to put the data in
quotes, too, when INSERTing.
|
|
04-Dec-2000 07:03 |
|
After weeks of work, I have succeeded in getting PHP4 to talk with ASA 7.0
on Redhat Linux 7.0.
Here's my very incomplete not so beautiful FAQ.
Let me know if this helps you.
|
|
tysonlt2webmedia.com.au
25-May-2001 03:27 |
|
**** NEWS FLASH ****
ATTENTION ALL STRUGGLING TO SETUP SYBASE!
There is finally a complete howto on Sybase/Apache/PHP/Linux here:
Hope it helps.
|
|
tysonlt2webmedia.com.au
08-Jun-2001 07:40 |
|
******* ANOTHER NEWS FLASH :) *******
Hi, the Apache-PHP-Sybase mini howto is now available at
Enjoy.
|
|
28-Jun-2001 12:33 |
|
It's important to note that sybase_ct connect or pconnect were causing
GPF.
If you experienced this problem, just update PHP to 4.0.6.
|
|
04-Jul-2001 07:16 |
|
The best place to get Sybase for Debian :
|
|
28-Aug-2001 02:54 |
|
maybe it can help.
my database is ASE
this is my script....
<?
$cnn =
sybase_connect("db_server","sa","password");
$result = sybase_query("Select itemno,stockno from
your_db..your_table");
$i = 0;
while ($r = sybase_fetch_array($result)) {
$i++;
$itemno = $r["itemno"];
$stockno = $r["stockno"];
echo "$i $stockno $itemno ";
}
?>
note that I did not use the
sybase_select_db("db") function because ASE had a default
database.
thx...
|
|
14-Sep-2001 05:22 |
|
If you use IIS and sybase-ct library, be sure to use PHP 4.0.6 or higher,
since older version caused crashes.
|
|
14-Sep-2001 05:29 |
|
If you have a Linux machine with Sybase ASE 11.9.2, Php 4.0.6, Apache and
Sybase-ct library, don't upgrade to Sybase ASE 12.5 yet, or Apache will
stop working.
Since 12.5 is newer than 4.0.6, I guess this will be fixed soon.
|
|
25-Oct-2001 09:56 |
|
For those, who might want to use SyBase client not only under Linux, you
may try to use open-source FreeTDS library -
Also there's how-to for FreeTDS and PHP:
|
|
27-Feb-2002 06:44 |
|
PhpSybaseAdmin
|
|
15-Apr-2002 08:28 |
|
Freetds 5.2 bugs!!
For those who use Freetds 5.2 running under linux connect to
sqlserver2000, there is a bugs in selecting NVARCHAR field that data will
either duplicated or truncated. To avoid this problem, please use CAST or
CONVERT function in sql statement such as:
$query="select CAST(fieldname as nchar(1000)) as fieldname from
table"
Feel free to contact us at
[email protected]
or
[email protected]
German Chu & Eagle Lee
|
|
ddc at portalframework.com
14-May-2002 05:19 |
|
Compiling PHP with Sybase ASE 12.5 on Linux.
Assuming that you have installed the Sybase ASE 12.5 client in linux, and
you have the SYBASE env variable set, you can compile PHP >= 4.0.6 with
Sybase ASE 12.5.
Just use:
--with-sybase-ct=$SYBASE/OCS
instead of
--with-sybase-ct=$SYBASE
|
|
17-Jun-2002 09:25 |
|
The way to use Sybase Adaptive Server Anywhere+PHP+Apache on Unix
|
|
|