关于用PHP连接ACCESS数据库的做法
成都创新互联专注于阜城网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供阜城营销型网站建设,阜城网站制作、阜城网页设计、阜城网站官网定制、微信小程序开发服务,打造阜城网络公司原创品牌,更为您提供阜城网站排名全网营销落地服务。
用ASP和PHP的,一起做一个比较..
ASP程序
程序代码 程序代码
1.conn= "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" Server.MapPath("*.mdb")
2.set conn = server.createobject("adodb.connection")
3.conn.open conn
4.set rs = Server.CreateObject("adodb.recordset")
5.sql = "select * from 表名"
6.rs.Open sql, conn, 3, 1
7.rs.Close
PHP程序
程序代码 程序代码
?PHP
1.$conn = @new COM("ADODB.Connection") or die ("ADO连接失败!");
2.$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("temp/TempData.mdb");
3.$conn-Open($connstr);
4.$rs = @new COM("ADODB.RecordSet");
5.$sql ="select * from blog_Content";
6.$rs-Open($sql,$conn,1,3);
7.$rs-close();
?
两个程序都相对应....很好理解了吧.嘿....然后就是ASP和PHP操作记录集了...有什么不同,,看资料了事5~
php: $rs[name/index];
asp: rs(name/index);
php: $rs-Fields["name"]-Value / fields[index]-Value;
asp: rs.fields(index)/rs.field(name);
php中的方法和ASP中基本一致,只是写法上不一样,,注意:PHP区分大小写,写时后面一定要加;号
asp:
修改记录集中的记录
rs.AddNew 向记录集中添加一条新记录
rs.Delete 从记录集中删除一条记录
rs.{fieldName/fieldIndex}=指定值;
rs.Update 保存对当前记录所做的修改
CancelBatch 当记录集处在批量更新模式时)取消一批更新
CancelUpdate 调用Update之前)取消对当前记录所做的所有修改
UpdateBatch 当记录集处于批量更新模式时)保存对一个或多个记录的修改
遍历记录集
Move NumRecords 在记录集中向前或向后移动指定数目的记录数。
MoveFirst 移动到记录集的第一条记录
MoveNext 移动到记录集的下一条记录
MovePrevious 移动到记录集中的上一条记录
MoveLast 移动到记录集的最后一条记录
记录集对象属性
AbsolutePosition 用来设置或读取当前记录在记录集中的位置顺序号
BOF 标明当前位置在记录集中的第一条记录之前
EOF 标明当前位置在记录集中的最后一条记录之后
RecordCount 表示一个记录集中的记录总数
记录集进行分页
AbsolutePage 指定当前的页
PagePount 返回记录集中的逻辑页数
PageSize 指定一个逻辑页中的记录个数,缺省值是10
GetRows() 记录取到数组
MaxRecords 记录集的最大容量
本人注:在文章最后只给出了ASP的内容,没有找到PHP的啊,还有我试验了以上内容,可是发现那容输出以后只是一个Object单词,不知道为什么,还希望高手不吝赐教!
$cha_tid_hiu_query=$mysql-select_query("`$w_db_table[6]` where `f_id`='$cha_tid_fetch[id]' order by `id` $desc_asc limit $page $pagesize ");
问题出现在 limit 限制了查询的条数
正确的是应该限制查询的 起 和 止
增加2个变量 $pagestart $pagend 以及当前的第n页 $page 以及每页显示的条数 $pagesize. 用公式计算出 $pagestart $pagend就可以了
看示例
mysql SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15
//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
mysql SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
//如果只给定一个参数,它表示返回最大的记录行数目:
mysql SELECT * FROM table LIMIT 5; //检索前 5 个记录行
//换句话说,LIMIT n 等价于 LIMIT 0,n。
字符集很简单,但是数据的排序需要通过SQL语句来协助完成,ORDER BY 语句,代码如下:
// 假设你已经成功连接了数据库($mysqli变量假设为连接的资源句柄)
// 通过对象方式设置字符编码
$mysqli - set_charset('utf8');
// 通过函数方式设置字符编码
mysqli_set_charset($mysqli, 'utf8');
// 那么接下来是数据排序的话,需要编写一条SQL查询语句(DESC 倒序排列 | ASC 正序排列)
$sql = "SELECT `字段` FROM `表名` WHERE TRUE ORDER BY `字段` DESC;";
如果还有什么问题,欢迎追问~
$sql ="select * from db.pre order by num desc limit 0,10"
看了下 应该是这个意思
获取num字段中的值按从大到下 或是从小到大排列
是靠这句order by num desc 如果顺序是反的 把desc 改成 asc
而想10条10条的去拿 就相当于翻页一样
limit 0,10 这个地方 如果是简单的只拿10个 那么就是 limit 10
而你是要拿N个10条 就只有 limit 0,10
而0是什么呢
sql数据起始标记是从0开始的
所以0是表里数据序列的起始位
limit 10,10这个就是从数据的第11行取10个
PHP链接数据库有几种方式
mysqli:
?php
$servername = "localhost";
$username = "username";
$password = "password";
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn-connect_error) {
die("连接失败: " . $conn-connect_error);
}
echo "连接成功";
?
也可以使用PDO进行链接,前提是你必须在php.ini中开启PDO:
?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
echo "连接成功";
}
catch(PDOException $e)
{
echo $e-getMessage();
}
?
建议使用PDO,功能更加强大,兼容各种数据库
关于这个问题,差不多就是这个样子的了,你如果不明白,可以自己去后盾瞅瞅,我这些都是在后盾上学的,有空可以去看一下,就算不喜欢也没关系啊,何乐而不为呢?
resourse
odbc_connect(
string
dsn,
string
user,
string
password
[,
int
cursor_type])
dsn:系统dsn名称
user:数据库服务器某用户名。
password:数据库服务器某用户密码。
php程序员站
cursor_type:游标类型。
这样连接上access的数据库
增删改查就是标准的sql语句了,楼主应该没什么问题了吧