PHP MS SQL
我本機裝的wamp的開發環境,因為要開發新的網站,但資料是存在遠端MSSQL資料庫裡面的
我在網上找到兩種串連MSSQL的方法,一種我用mssql_connect 總是串連不上,後來我用下面這種方法串連上的
2
/**
* php使用ODBC串連sql server資料庫執行個體
*/
$server='ip地址或伺服器名';
$username='資料庫使用者名稱';
$password='資料庫密碼';
$database='資料庫名';
$connstr = "Driver={SQL Server};Server=$server;Database=$database";
if ( !odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC)){
echo "Couldn't connect to SQL Server on $server";
}else{
echo "Connect successfully!
";
}
?>
現在是串連資料成功了
但後面的SQL查詢語句怎麼寫
我在後面這樣寫它會報錯
if ( !odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC))
{ echo "Couldn't connect to SQL Server on $server";
}
else{
while($row=mssql_fetch_array(mssql_query('select * from t_item')))
{
echo $row[0];
}
}
Warning: mssql_query() [function.mssql-query]: Unable to connect to server: (null) in C:\wamp\www\mssql.php on line 12
Warning: mssql_query() [function.mssql-query]: A link to the server could not be established in C:\wamp\www\mssql.php on line 12
Warning: mssql_fetch_array(): supplied argument is not a valid MS SQL-result resource in C:\wamp\www\mssql.php on line 12
是不是這種串連的查詢文法不是這樣寫的
回複討論(解決方案)
odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC)
你是使用 odbc 串連資料庫的
那麼就應該使用 odbc 函數組進行操作
odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC)
你是使用 odbc 串連資料庫的
那麼就應該使用 odbc 函數組進行操作
那如果我想echo我要查的那個表後面該怎麼寫
mssql連不上的原因會不會是php中mssql的擴充沒開?
$conn = odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC);
$rs = odbc_exec($conn, 'select * from tbl_name');
$ar = odbc_fetch_array($rs);
print_r($ar);
mssql連不上的原因會不會是php中mssql的擴充沒開?
mssql的拓展開啟了 而且ntwdblib.DLL這個檔案的版本我也換了還是沒用,因為mssql公司的業務系統在上面運行不怎麼敢動,所以放棄了 只有另找方法了
$conn = odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC);
$rs = odbc_exec($conn, 'select * from tbl_name');
$ar = odbc_fetch_array($rs);
print_r($ar);
首先先謝謝斑竹
我剛才在百度上搜了一下 我是這些寫的 網頁中能顯示資料
$conn=odbc_connect($connstr,$username,$password,SQL_CUR_USE_ODBC);$sql="select * from t_item where fname like '%南昌%'";$rs=odbc_exec($conn,$sql);if (!$rs){exit("Error in SQL");}echo "
";echo "
| fnumber | ";echo "
fname |
";while (odbc_fetch_row($rs)){ $fname=odbc_result_all($rs,fnumber); $fnumber=odbc_result($rs,fname); echo "
| $fname | "; echo "
$fnumber |
"; }odbc_close($conn);echo "
";
我想問一下 ,能把SQL查詢改成調用SQL SQRVER中的預存程序嗎,用什麼方法調用預存程序,參數怎麼給,
給我指明大概的方法就可以了
那不是一樣嗎?你在控制台怎麼執行,程式裡就怎麼寫
預存程序是已經寫好的,那個預存程序比較複雜,串連好了好多表,也有暫存資料表,我想問的是在PHP中用什麼函數可以調用到那個預存程序,我沒用過 odbc_connect這種串連方式,後面不知道怎麼下手繼續
使用pdo吧,n具體的去看手冊,現在都流行使用pdo,不用函數。
odbc_exec 執行 sql 指令,並返回結果
預存程序也屬於 sql 指令
預存程序是已經寫好的,那個預存程序比較複雜,串連好了好多表,也有暫存資料表,我想問的是在PHP中用什麼函數可以調用到那個預存程序,我沒用過 odbc_connect這種串連方式,後面不知道怎麼下手繼續
odbc_exec 執行 sql 指令,並返回結果
預存程序也屬於 sql 指令
預存程序是已經寫好的,那個預存程序比較複雜,串連好了好多表,也有暫存資料表,我想問的是在PHP中用什麼函數可以調用到那個預存程序,我沒用過 odbc_connect這種串連方式,後面不知道怎麼下手繼續
我在查詢分析器這樣寫
select fname='南昌' into #mssql exec mssql drop table #mssql 可以正常查詢
在PHP裡寫成這樣
$sql=" select fname='南昌' into #mssql exec mssql drop table #mssql";
$rs=odbc_exec($conn,$sql);
就會報錯
Warning: odbc_fetch_row() [function.odbc-fetch-row]: No tuples available at this result index in C:\wamp\www\mssql.php on line 20
有中文,就要檢查是否編碼問題