当前位置: 编程技术>php
本页文章导读:
▪php 结果集的分页实现代码
代码如下:<?php @mysql_connect("localhost", "root","1981427") //连接数据库服务器 or die("数据库服务器连接失败"); @mysql_select_db("test") //选择数据库mydb or die("数据库不存在或不可用"); $query = @mysql_query(".........
▪php 动态添加记录
代码如下:<html> <head> <title>插入一条新数据</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <form method="post" name="form1" action="/blog_article/insert.html">.........
▪PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
Author: Wenlong Wu 一、针对MS SQL SERVER数据库 有两种解决方案,如下: 修改php.ini来实现: 打开php.ini,可看到mssql.textsize,mssql.textlimit两个选项: ; Valid range 0 - 2147483647. Default = 4.........
[1]php 结果集的分页实现代码
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
@mysql_connect("localhost", "root","1981427") //连接数据库服务器
or die("数据库服务器连接失败");
@mysql_select_db("test") //选择数据库mydb
or die("数据库不存在或不可用");
$query = @mysql_query("select * from tablename1") //执行用于计算页数的SQL语句
or die("SQL语句执行失败");
$pagesize = 5; //设置每页记录数
$sum = mysql_numrows($query); //计算总记录数
if($sum % $pagesize == 0) //计算总页数
$total = (int)($sum/$pagesize);
else
$total = (int)($sum/$pagesize) + 1;
if (isset($_GET['page'])) //获得页码
{
$p = (int)$_GET['page'];
}
else
{
$p = 1;
}
$start = $pagesize * ($p - 1); //计算起始记录
//执行查询当前页记录的SQL语句
$query = @mysql_query("select * from tablename1 limit $start, $pagesize")
or die("SQL语句执行失败");
echo "<table border=1>"; //输出表头
//通过循环的方式输出从第0行到最大的一行的所有记录
while($row = mysql_fetch_array($query))
{
$serial_no = $row['id']; //输出第$i行的serial_no列
$name = $row['username']; //输出第$i行的name列
$salary = $row['password']; //输出第$i行的salary列
echo "<tr>";
echo "<td>$serial_no</td>";
echo "<td>$name</td>";
echo "<td>$salary</td>";
echo "</tr>";
}
echo "</table>"; //输出表尾
if($p > 1) //当前页不是第一页时,输出上一页的链接
{
$prev = $p - 1;
echo "<a href="/blog_article/page/$prev.html" href="/blog_article/page/$prev.html">上一页</a> ";
}
if($p < $total) //当前页不是最后一页时,输出下一页的链接
{
$next = $p + 1;
echo "<a href="/blog_article/page/$next.html" href="/blog_article/page/$next.html">下一页</a>";
}
?>
[2]php 动态添加记录
来源: 互联网 发布时间: 2013-11-30
代码如下:
<html>
<head>
<title>插入一条新数据</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<form method="post" name="form1" action="/blog_article/insert.html">
<table align="center">
<tr valign="baseline">
<td nowrap align="right">编号:</td>
<td><input type="text" name="id" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">用户名:</td>
<td><input type="text" name="username" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">密码:</td>
<td><input type="text" name="password" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td colspan="2" nowrap><input name="Submit" type="submit" value="提交">
<input type="reset" name="Reset" value="重设"></td>
</tr>
</table>
</form>
</body>
</html>
代码如下:
<?php
@mysql_connect("localhost", "root","1981427") //选择数据库之前需要先连接数据库服务器
or die("数据库服务器连接失败");
@mysql_select_db("test") //选择数据库mydb
or die("数据库不存在或不可用");
$id = $_POST['id'];
$username = $_POST['username'];
$password = $_POST['password'];
$query = mysql_query("insert into tablename1 values($id, '$username', '$password')");
if($query)
echo "数据插入成功";
else
echo "数据插入失败";
mysql_close();
?>
[3]PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
来源: 互联网 发布时间: 2013-11-30
Author: Wenlong Wu
一、针对MS SQL SERVER数据库
有两种解决方案,如下:
修改php.ini来实现: 打开php.ini,可看到mssql.textsize,mssql.textlimit两个选项:
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096
可以看到默认配置为4096字节,也就是经常碰到的被截断为4K,将之改为合适的大小,去掉前面的分号,然后保存并重起WEB服务器即可。
从上面两个选项可看到范围为:0 - 2147483647字节,其实-1也可以的,查看一下PHP源代码即可发现-1表示无限制 :)
if (MS_SQL_G(textlimit) != -1) {
sprintf(buffer, "%li", MS_SQL_G(textlimit));
if (DBSETOPT(mssql.link, DBTEXTLIMIT, buffer)==FAIL) {
efree(hashed_details);
dbfreelogin(mssql.login);
RETURN_FALSE;
}
}
if (MS_SQL_G(textsize) != -1) {
sprintf(buffer, "SET TEXTSIZE %li", MS_SQL_G(textsize));
dbcmd(mssql.link, buffer);
dbsqlexec(mssql.link);
dbresults(mssql.link);
}
在PHP中查询之前执行SET TEXTSIZE 合适的大小: 只需在SELECT之前执行
mssql_query("SET TEXTSIZE 65536");
从上面PHP源代码中可看到其实也是执行SET TEXTSIZE的 :)
二、针对Sybase数据库
由于该扩展在php.ini没有像SQL SERVER那样的选项可配置,所以只有采用上面的第二种方法,即:
在SELECT之前执行
sybase_query("SET TEXTSIZE 65536");
一、针对MS SQL SERVER数据库
有两种解决方案,如下:
修改php.ini来实现: 打开php.ini,可看到mssql.textsize,mssql.textlimit两个选项:
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096
可以看到默认配置为4096字节,也就是经常碰到的被截断为4K,将之改为合适的大小,去掉前面的分号,然后保存并重起WEB服务器即可。
从上面两个选项可看到范围为:0 - 2147483647字节,其实-1也可以的,查看一下PHP源代码即可发现-1表示无限制 :)
if (MS_SQL_G(textlimit) != -1) {
sprintf(buffer, "%li", MS_SQL_G(textlimit));
if (DBSETOPT(mssql.link, DBTEXTLIMIT, buffer)==FAIL) {
efree(hashed_details);
dbfreelogin(mssql.login);
RETURN_FALSE;
}
}
if (MS_SQL_G(textsize) != -1) {
sprintf(buffer, "SET TEXTSIZE %li", MS_SQL_G(textsize));
dbcmd(mssql.link, buffer);
dbsqlexec(mssql.link);
dbresults(mssql.link);
}
在PHP中查询之前执行SET TEXTSIZE 合适的大小: 只需在SELECT之前执行
mssql_query("SET TEXTSIZE 65536");
从上面PHP源代码中可看到其实也是执行SET TEXTSIZE的 :)
二、针对Sybase数据库
由于该扩展在php.ini没有像SQL SERVER那样的选项可配置,所以只有采用上面的第二种方法,即:
在SELECT之前执行
sybase_query("SET TEXTSIZE 65536");
最新技术文章: