1.目前,以上各大CMS都没有相通的JSP和PHP版,所以靠官方是不可能了;
创新互联是一家专业提供拉孜企业网站建设,专注与网站建设、成都网站制作、H5开发、小程序制作等业务。10年已为拉孜众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
2.但数据库都为MYSQL,我们可以在这方面做功夫;
3.首先,必备功夫,必定研究数据表和字段结构和作用;
4.其次注意JSP和PHP操作MYSQL数据时一定要注意三处编码统一原则;
5.下面我就分别对PHP和JSP操作同一数据库数据表为例子,供你参考:
〈〉〈〉〈〉PHP版的(你可以在本地调试):
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
title无标题文档/title
/head
body
?
$server="121.12.125.10";
$dbuser="sq_pyllion3";
$dbpass="4o2gd4";
$dbname="灶答毕sq_pyllion3";
$conn=mysql_connect($server,$dbuser,$dbpass);
mysql_query("set names 'utf8'");
$result = mysql_db_query($dbname,"select * from testuser",$conn);
?
TABLE border=1 cellSpacing=0 cellPadding=0 width=800 align=center
TR
TDid/TD
TD名字/TD
TD密码描述/TD
/TR
?
while ($row = mysql_fetch_array($result)) {
?
TR
TD?=$row ['id']?/TD
TD?=$row ['username']?/TD
TD?=$row ['password']?/TD
/TR
?
}?
/TABLEBR数据库操作成功,恭喜你/BODY/HTML
/body
/html
〈〉〈〉〈〉JSP版的(你可以查看参考资料,那有效果,保证与PHP一个样,代码如下:)
%@ page contentType="text/html; charset=utf8" %
%@ page language="java" %
%@ page import="com.mysql.jdbc.Driver" %
%@ page import="java.sql.*" %
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
""隐芹
html
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8"
%
//驱动程序名
String driverName="com.mysql.jdbc.Driver";
//数据库用户名
String userName="sq_pyllion3";
//密码
String userPasswd="4o2gd4";
//数据库名
String dbName="sq_pyllion3"
;//表名
String tableName="testuser";
//联结字符串
String url="jdbc:mysql://121.12.125.10/"+dbName+"?user="+userName+"password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql="SELECT * FROM "+tableName;
ResultSet rs = statement.executeQuery(sql);
//获得举孙数据结果集合
ResultSetMetaData rmeta = rs.getMetaData();//确定数据集的列数,亦字段数
int numColumns=rmeta.getColumnCount();// 输出每一个数据值
%
table width="800" border="1" cellspacing="0" cellpadding="0" align="center"
tr
tdid/td
td名字/td
td密码描述/td
/tr
%
while(rs.next())
{
%
tr
td%=rs.getInt("Id")%/td
td%=rs.getString("username")%/td
td%=rs.getString("password")%/td
/tr
%
}
%
/table
%
out.print("br");
out.print("数据库操作成功,恭喜你");
rs.close();
statement.close();
connection.close();
%
由于框架版本原因可以选择适合的版本
composer require topthink/think-queue
由于我是tp框架5.1的,所以选择了think-queue 1.1.6
composer require topthink/think-queue 1.1.6
判断安散纯哪装成功
php think queue:work -h
看了网上其他的一些帖子说配置文件在统一目录下/config/queue.php
但是,我这冲码边没有生成,但是裤陵根据Queue.php源码可以看出,配置是在config.php文件中的一个键值对
数据表默认数据
?php
$mysql_host = 'localhost';
$mysql_user = 'root'粗梁;
$mysql_password = '';
$mysql_database = 'testdb';
///*Connect to the local server,可以在函数名前加上 @ 来抑岩碰运制失败时产生的错误信息。
$link = mysql_connect($mysql_host,$mysql_user,$mysql_password) or die(mysql_error());
mysql_select_db($mysql_database) or die(mysql_error());
//set charset 设定字符集解决汉字问题
mysql_query("set names 'gbk'");
$rowsPerPage = 3; //定义每页的行数
$row = mysql_fetch_assoc(mysql_query("SELECT count(*) AS c FROM testmsg")); //查询表中的总记录数
$rows = $row['c']; //得到表中总记录数
$pages = ceil($rows / $rowsPerPage); //计算出页数
$curPage = 1; //当前要显示第几页,默认显示第1页
//$_REQUEST变量比较大,一般不用。常用的是$_POST,$_GET,二者与form表单method保持一致。$_GET还支持url传值
if(isset($_GET['curPage'])) //假如用户提交了指定的页数
$curPage = $_GET['curPage']; // 就将欲显示的页数设定为用户指定的值
//倒序查询
//echo $curPage;
$sql = "SELECT * FROM testmsg ORDER BY id DESC"." LIMIT ".($curPage -1)*$rowsPerPage.", $rowsPerPage"; //修改sql语句,使得可以查询出指定的结果集
//echo $sql;
$result = mysql_query($sql) or die(mysql_error());
//列表显示----------显示部分内容不变
while($row = mysql_fetch_assoc($result)){
echo "table width = '90%' align = 'center' cellpadding = '1' cellspacing = '1' bgcolor = 'blue' ";
echo " tr";
echo " td rowspan='2' width = '25%' bgcolor = 'white'";
echo " lispan style='color:red;'编号:/span{$row['id']}/li";
echo " lispan style='color:red;'用户:/span{$row['email']}/li";
echo " 吵盯lispan style='color:red;'地址:/span{$row['ip']}/li";
echo " lispan style='color:red;'时间:/span{$row['time']}/li";
echo " lifont color = 'red'其他:/font{$row['other']}"; //html旧式写法
echo " /td";
echo " td bgcolor = 'yellow' font color = 'red'标题:/fonta href = modifyMsg.php?id={$row['id']}{$row['title']}/td";
echo " /tr";
echo " tr";
echo " td bgcolor = 'white' {$row['content']}/td";
echo " /tr";
echo "/table";
echo "br /";
}
//显示全部分页的链接
echo "div align = 'center'";
for($i=1;$i=$pages;$i++){ //循环显示,每个链接指定curPage属性为其指向的页数就可以了
echo "a href='testpage201.php?curPage=$i'$i/a ";
}
//下拉框分页
echo "form name = 'form1' action = 'testpage201.php?curPage=$curPage' method = 'GET'";
echo " select name= 'curPage' onchange = 'document.form1.submit();'";
for($i = 1; $i =$pages; $i++){
if($i == $curPage)
echo "option selected$i/option";
else
echo "option$i/option";
}
echo " /select";
echo " /form";
//首页、前页、后页、末页的链接
if($curPage1){
echo "a href = 'testpage201.php?curPage=1'首页/a ";
echo "a href = 'testpage201.php?curPage=".($curPage-1)."'前页/a ";
}
if($curPage$pages){
echo "a href='testpage201.php?curPage=".($curPage+1)."'后页/a ";
echo "a href = 'testpage201.php?curPage=$pages'末页/a ";
}
echo "/div";
//列表显示完毕
mysql_free_result($result);
mysql_close($link);
//$link-close()等同于mysql_close($link);
//$result-free()等同于mysql_free_result($result);
//$link-query($sql)等同于mysql_query($sql,$link);
/*
MySQL limit的实际用法的详细解析,在我们使用相关的查询语句的时候,一般都要返回前几条或是中间的某几行数据,这时你应如何处理呢?不必担心,MySQL数据库已经为我们提供了这样一个功能。
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。MySQL LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。
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 等价于 MySQL LIMIT 0,n。以上的相关内容就是对MySQL limit的用法详解的介绍,望你能有所收获。 */
?
?php
$link = mysql_connect("localhost","root","");
$sqlstr = "SELECT * FROM testmsg";
$send = mysql_db_query("testdb",$sqlstr);
$fdat = mysql_fetch_row($send);
$fdat = mysql_fetch_row($send); //试试调用两次的结果?
//mysql_fetch_row() 从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。
//依次调用 mysql_fetch_row() 将返回结果集中的下一行,如果没有更多行则返回 FALSE。
//print_r($fdat);
//foreach的两种写法
//foreach($fdat as $value){
foreach($fdat as $key = $value){
echo "$key:$valuebr /";
}
mysql_data_seek($send,0); //指针所在位置回到第一条记录上
$fdat = mysql_fetch_row($send);
foreach($fdat as $name = $valu){ //key = value 可以换写法命名
echo "$name:$valubr /";
}
mysql_free_result($send);
mysql_close($link);
/*
foreach
PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。
foreach (array_expression as $value)
statement
foreach (array_expression as $key = $value)
statement
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
自PHP 5 起,还可能遍历对象。
Note:
当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。
Note:
除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。foreach对数组指针有些副作用。除非对其重置,在 foreach 循环中或循环后都不要依赖数组指针的值。
自 PHP 5 起,可以很容易地通过在 $value 之前加上 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
*/
?
?php
$link1 = mysql_connect("localhost","root","");
$link2 = mysql_connect("localhost","root","")
//mysql_close();
//如果关闭连接,则无输出并报错。
/*
bool mysql_close ([ resource $link_identifier ] )
mysql_close() 关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier,则关闭上一个打开的连接。
*/
$result = mysql_query("select count(*) from testdb.testmsg"); //查询结果集
$row = mysql_fetch_row($result); //从结果集中取出一行作为枚举数组返回
print_r($row); //输出数据表的总行数的数组信息
echo $row[0];
?