php和多种数据库(mssql,access,oracle)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PHP访问ACCESS数据库的方法总结收藏
在PHP中连接ACCESS有三种方式:
1、创建系统数据源,用php提供的odbc函数即可
2、同样使用php的odbc函数,但不创建数据源。
$connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("netBook.mdb") ;
$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC );
3、使用微软的ADODB数据库驱动
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("netBook.mdb");
$conn->Open($connstr);
$rs = new com("ADODB.RecordSet");
$rs->Open("select * from class",$conn,1,1);
while(! $rs->eof) {
// $f = $rs->Fields(0);
// echo $f->value;
echo $rs->Fields["content"]->value."
";
$rs->MoveNext();
}
?>
举例如下:
$connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("1.mdb");
$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC );
$query=odbc_do($connid,"select keyword from keyword");
//$query= odbc_do($con,$sql);
$num = 0;
while(odbc_fetch_row($query)){
//echo $record[$num] = odbc_result($query,1); echo " ";
//echo $record1[$num] = odbc_result($query,2); echo " ";
//echo $record2[$num] = odbc_result($query,3); echo " ";
//echo $record3[$num] = odbc_result($query,4); echo " ";
//echo "
";
echo $record = odbc_result($query,1);
echo "
";
$num = $num + 1;
if ($num > 20){ break; } // 只取出前20条记录
echo $connid;
?>
本文来自CSDN博客,转载请标明出处:/kflwz/archive/2006/04/05/651196.aspx
PHPBB使用MSSQL数据库编码问题解决
PHPBB在MSSQL上运行时候,汉字提交和显示会异常,出现乱码等现象,究其原因,乃MSSQL数据库不支持UTF-8编码引起。经搜索相关资料,得知本人使用的服务器上的MSSQL支持GB码。好,那在提交数据和读取数据之前做一下编码转换即可。唯一的缺点是增加的服务器的负载。不过本人试了一下,速度暂时还能接受。请参考以下源码修改细节:
file : mssql.php
functino: sql_query:
$query = iconv("UTF-8","gbk//IGNORE",$query);// add here
if (($this->query_result = @mssql_query($query, $this->db_connect_id)) === false)
{
$this->sql_error($query);
}
functino: sql_fetchrow:
foreach ($row as $key => $value)
{
$row[$key] = ($value === ' ' || $value === NULL) ? '' : $value;
$row[$key] = iconv("gbk","UTF-8//IGNORE",$row[$key]); // add here
}
解决php使用mssql server时遇到的中文编码问题一例
朋友要用sugarcrm的php读取Ms sql server的中文资料,因为其原始资料是Access 数据库,导到mysql不太方便。但导到sqlserver 2005后,发现其中文编码只支持GB 和UCS-2(unicode 16),所以直接在数据库中查询显示正确,但使用php的utf9编码显示时则全是乱码。
找了大量资料,什么使用mssql,freetds,odbc,ado或直接每次查询和写入都进行转码等建议都有。不过实际测试中,发现Ado这种方法是好用的。
代码如下:
view plaincopy to clipboardprint?
//print("The next line generates an error.
");
//printaline("PLEASE?");
//print("This will not be displayed due to the above error.");
?>
$conn = new COM("ADODB.Connection", NULL, CP_UTF8) or die("Cannot start ADO");
//access 数据库的打开方式
//$conn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$db");
//$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");
$conn->Open("Driver={SQL
Server};Server={192.168.22.40};Database=sugarcrm_db;UID=sa;PWD=123456;") ;
// 执行查询并输出数据
$rs = $conn->Execute('SELECT * FROM accounts') or die ("error query");
?>
ID | Title |
---|---|
'. $rs->Fields['id']->Value .' | ';'. $rs->Fields['name']->Value .' | ';
// 释放资源