❶ 如何配置php使php能訪問sybase
需要下載並打開SYBASE的擴展庫,具體在PHP.INI中把 php_sybase_ct.dll前面的分號去掉重啟伺服器用 <? phpinfo(); ?>語句查看
❷ php怎樣連接sybase資料庫 應該咋寫
以下測試php連接sybase資料庫,並輸出資料庫內表的記錄數的例子, 僅供參考:
<?php
//phpinfo();
$link = @sybase_connect('test', 'sa', '')
or die("Could not connect !"); //連接資料庫,第一空必須寫服務名稱,不能是ip;
echo "Connected successfully<br>";
$db = @sybase_select_db("andkylee",$link) //連接資料庫
or die("資料庫沒有選擇");
echo "資料庫選擇成功<br>";
$sql= "select user_name(uid) as owner,* from dbo.sysobjects where type='U' order by id";
$rs = sybase_query($sql,$link); //查詢表
if (!$rs)
{
echo "SQL:".$sql."執行失敗!";
exit;
}
//$sybase = sybase_fetch_array($rs);
//print_r($sybase);//結束
echo '<table border="1"><tr><td>ID</td><td>NAME</td><td>COUNT(*)</td>';
while ($row = sybase_fetch_array($rs)) {
$id = $row["id"];
$name = $row["name"];
$owner = $row["owner"];
$sql_tablecount = "select count(*) as cnt from ".$owner.".".$name;
$rs_tablecount = sybase_query($sql_tablecount,$link);
$row_tablecount = sybase_fetch_array($rs_tablecount);
$cnt = $row_tablecount["cnt"];
echo '<tr><td>'.$id.'</td><td>'.$name.'</td><td>'.$cnt.'</td></tr>';
}
echo '</table>';
sybase_free_result($rs);
sybase_close($link);
?>
❸ php與sybase連接使用。給點意見。 - PHP進階討論
是WIN環境下嗎,看起來這個IIS或APACHE錯誤還是常見的dll庫找不到。個人建議把PHP目錄下所有dll都復制到WIN的系統目錄,具體哪些目錄可以參照:我的電腦=>右鍵菜單=>屬性=>高級=>環境變數=>PATH里的內容。PHP在WIN環境下,對於dll庫的依賴關系有時確實讓人頭疼。你的PHP.ini里打開對sybase那個dll的引用肯定是需要的。一般來說,那個錯誤提示有幾個,就是有幾個依賴的dll文件沒被找到。
❹ php如何連接sybase 資料庫(php自帶的擴展除外)
ODBC是萬能的,任何資料庫都可以通過ODBC與程序設計語言介面。
❺ 安裝php加什麼參數可以支持sybase
--with-pdo-dblib=DIRPDO:DBLIB-DBsupport.DIRistheFreeTDShomedirectory
不以物喜,不以己悲;廖仲庭,為您解答,王採納!
❻ php中addslashes()函數的用途
addslashes
--
使用反斜線引用字元串
string
addslashes
(
string
str
)
返回字元串,該字元串為了資料庫查詢語句等的需要在某些字元前加上了反斜線。這些字元是單引號(')、雙引號(")、反斜線(\)與
NUL(NULL
字元)。
一個使用
addslashes()
的例子是當你要往資料庫中輸入數據時。例如,將名字
O'reilly
插入到資料庫中,這就需要對其進行轉義。大多資料庫使用
\
作為轉義符:O\'reilly。這樣可以將數據放入資料庫中,而不會插入額外的
\。當
PHP
指令
magic_quotes_sybase
被設置成
on
時,意味著插入
'
時將使用
'
進行轉義。
默認情況下,PHP
指令
magic_quotes_gpc
為
on,它主要是對所有的
GET、POST
和
COOKIE
數據自動運行
addslashes()。不要對已經被
magic_quotes_gpc
轉義過的字元串使用
addslashes(),因為這樣會導致雙層轉義。遇到這種情況時可以使用函數
get_magic_quotes_gpc()
進行檢測。
❼ 如何自動轉義字元串在PHP SQL查詢
在處理MySQL和GET、POST的數據時,常常要對數據的引號進行轉義操作。
PHP中有三個設置可以實現自動對』(單引號),」(雙引號),\(反斜線)和 NULL 字元轉轉。
php稱之為魔術引號,這三項設置分別是
magic_quotes_gpc
影響到 HTTP 請求數據(GET,POST 和 COOKIE)。不能在運行時改變。在 PHP 中默認值為 on。
這個開啟時,通過GET,POST,COOKIE傳遞的數據會自動被轉義。
如 test.php?id=abc'de"f
echo $_GET['id']; # 會得到 abc\'de\"f
magic_quotes_gpc=On; 這個開啟了,對寫入資料庫是沒有影響的,比如 上面的$_GET['id'] 寫到資料庫裡面,依然是 abc'de"f ,
相反,如果magic_quotes_gpc=Off; 那麼字元中要帶有引號(不管單引號還是雙引號) ,直接寫入mysql都會直接變成空白
但是,如果你將它寫入文檔,而非mysql。那麼它將是 abc\'de\"f
magic_quotes_runtime
如果打開的話,大部份從外部來源取得數據並返回的函數,包括從資料庫和文本文件,所返回的數據都會被反斜線轉義。該選項可在運行的時改變,在 PHP 中的默認值為 off。
magic_quotes_sybase
如果打開的話,將會使用單引號對單引號進行轉義而非反斜線。此選項會完全覆蓋 magic_quotes_gpc。如果同時打開兩個選項的話,單引號將會被轉義成 」。而雙引號、反斜線 和 NULL 字元將不會進行轉義。
我表單內容本來是:<img alt=」" width=」400″ height=」300″ src=」/Upfiles/201105/images/1306657040.jpg」 />
<img alt=\」\」 width=\」400\」 height=\」300\」 src=\」/Upfiles/201105/images/1306657040.jpg\」 />
對策一:修改php.ini文件(修改php.ini這個方法就不說了,大家可以google下)
對策二:把轉義的給取消了
第一步:找到你提交的數據比如$_POST['content'],將其改成$content=stripslashes($_POST['content']);
第二步:以後在使用$POST['content']的地方都換成$content
第三步:提交到資料庫,資料庫儲存還是正常的:<img alt=」" width=」400″ height=」300″ src=」/Upfiles/201105/images/1306657040.jpg」 />讀出來又成了
<img alt=\」\」 width=\」400\」 height=\」300\」 src=\」/Upfiles/201105/images/1306657040.jpg\」 />(這個應該知道怎麼解決了吧?要不我再羅嗦下吧)
第四步:將資料庫讀取的內容再用stripslashes()過濾一下。
stripslashes() 這個函數 ,刪除由addslashes()函數添加的反斜杠。用於清理從資料庫或 HTML 表單中取回的數據
(
PHP頁面中如果不希望出現以下情況:
單引號被轉義為 \'
雙引號被轉義為 \"
那麼可以進行如下設置以防止:
在php.ini中設置:magic_quotes_gpc = Off)
總結如下:
1. 對於magic_quotes_gpc=on的情況,
我們可以不對輸入和輸出資料庫的字元串數據作
addslashes()和stripslashes()的操作,數據也會正常顯示。
如果此時你對輸入的數據作了addslashes()處理,
那麼在輸出的時候就必須使用stripslashes()去掉多餘的反斜杠。
2. 對於magic_quotes_gpc=off 的情況
必須使用addslashes()對輸入數據進行處理,但並不需要使用stripslashes()格式化輸出
因為addslashes()並未將反斜杠一起寫入資料庫,只是幫助mysql完成了sql語句的執行。
❽ php能夠連接sybase但是無法選擇sybase資料庫 你這個問題解決了嗎 我也遇到了這個玩意 用客戶端能連上
網友採納
以下測試php連接sybase資料庫,並輸出資料庫內表的記錄數的例子, 僅供參考:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
//phpinfo();
$link = @sybase_connect('test', 'sa', '')
or die("Could not connect !"); //連接資料庫,第一空必須寫服務名稱,不能是ip;
echo "Connected successfully";
$db = @sybase_select_db("andkylee",$link) //連接資料庫
or die("資料庫沒有選擇");
echo "資料庫選擇成功";
$sql= "select user_name(uid) as owner,* from dbo.sysobjects where type='U' order by id";
$rs = sybase_query($sql,$link); //查詢表
if (!$rs)
{
echo "SQL:".$sql."執行失敗!";
exit;
}
//$sybase = sybase_fetch_array($rs);
//print_r($sybase);//結束
echo '<table border="1"><tr><td>ID</td><td>NAME</td><td>COUNT(*)</td>';
while ($row = sybase_fetch_array($rs)) {
$id = $row["id"];
$name = $row["name"];
$owner = $row["owner"];
$sql_tablecount = "select count(*) as cnt from ".$owner.".".$name;
$rs_tablecount = sybase_query($sql_tablecount,$link);
$row_tablecount = sybase_fetch_array($rs_tablecount);
$cnt = $row_tablecount["cnt"];
echo '<tr><td>'.$id.'</td><td>'.$name.'</td><td>'.$cnt.'</td></tr>';
}
echo '</table>';
sybase_free_result($rs);
sybase_close($link);
?>