1.在linux上搭建好lnmp架构后,先测试一下php是否可以连接上mysql.
测试代码:test.php
<?php
$link=mysql_connect("172.25.90.14","root","redhat");
if(!$link) echo "FAILD!连接错误,用户名密码不对";
else echo "OK!可以连接";
?>
2.接下来利用php就可以对mysql进行增删改查了
<?php
define('MYSQL_HOST','172.25.90.14');
define('MYSQL_USER','root');
define('MYSQL_PW','redhat');
b. functions.php 再创建一个保存函数的文件functions.php:
<?php
require_once 'config.php';
function connnetDb(){
//连接mysql数据库
$conn=mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PW);
//排除连接数据库异常错误
if(!$conn){
die('can not connect db');
}
//在mysql中选中myapp数据库
mysql_select_db("wzw");
return $conn;
}
c. allusers.php 查询数据库
<?php
require_once 'functions.php';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>所有用户</title>
<style>
table{
border-collapse: collapse;
}
th,td{
border:1px solid #ccccff;
padding: 5px;
}
td{
text-align: center;
}
</style>
</head>
<body>
<a href="adduser.html">添加用户</a>
<table>
<tr><th>id</th><th>名字</th><th>年龄</th><th>修改/删除</th></tr>
<?php
//连接数据库
connnetDb();
//查询数据表中的所有数据,并按照id降序排列
$result=mysql_query("SELECT * FROM users ORDER BY id DESC");
//获取数据表的数据条数
$dataCount=mysql_num_rows($result);
//echo $dataCount;
//打印输出所有数据
for($i=0;$i<$dataCount;$i++){
$result_arr=mysql_fetch_assoc($result);
$id=$result_arr['id'];
$name=$result_arr['name'];
$age=$result_arr['age'];
//print_r($result_arr);
echo "<tr><td>$id</td><td>$name</td><td>$age</td><td><a href='edituser.php?id=$id'>修改</a> <a href='deleteuser.php?id=$id'>删除</a></td></tr>";
}
?>
</table>
</body>
</html>
d. adduser.html 新建adduser.html页面,提供用户输入表单
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>添加用户</title>
</head>
<body>
<form action="adduser.php" method="post">
<label>用户ID:</label><input type="text" name="id">
<label>用户名:</label><input type="text" name="name">
<label>年龄:</label><input type="text" name="age">
<input type="submit" value="提交">
</form>
</body>
</html>
e. adduser.php 创建处理用户表单数据的服务端文件adduser.php,并将添加的数据返回到列表页面
<?php
require_once 'functions.php';
//首先进行非空排错
if(!isset($_POST['id'])){
die('id is not define');
}
if(!isset($_POST['name'])){
die('name is not define');
}
if(!isset($_POST['age'])){
die('age is not define');
}
$id=$_POST['id'];
$name=$_POST['name'];
$age=$_POST['age'];
if(empty($id)){
die('id is empty');
}
if(empty($name)){
die('name is empty');
}
if(empty($age)){
die('age is empty');
}
//连接数据库
connnetDb();
//执行类型转换,防止SQL注入
$age=intval($age);
//插入数据
mysql_query("INSERT INTO users(id,name,age) VALUES ('$id','$name','$age')");
//返回列表页面
if(mysql_error()){
echo mysql_error();
}else{
header("Location:allusers.php");
}
f. edituser.php 创建edituser.php,获取需要修改的数据并呈现成表单,供用户修改数据
<?php
require_once 'functions.php';?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改用户数据</title>
</head>
<body>
<?php
if(!empty($_GET['id'])){
//连接mysql数据库
connnetDb();
//查找id
$id=intval($_GET['id']);
$result=mysql_query("SELECT * FROM users WHERE id=$id");
if(mysql_error()){
die('can not connect db');
}
//获取结果数组
$result_arr=mysql_fetch_assoc($result);
}else{
die('id not define');
}
?>
<form action="edituser_server.php" method="post">
<label>用户ID:</label><input type="text" name="id" value="<?php echo $result_arr['id']?>">
<label>用户名:</label><input type="text" name="name" value="<?php echo $result_arr['name']?>">
<label>用户年龄:</label><input type="text" name="age" value="<?php echo $result_arr['age']?>">
<input type="submit" value="提交修改">
</form>
</body>
</html>
g. edituser_server.php 提交给服务端edituser_server.php处理:
<?php
require_once 'functions.php';
if(empty($_POST['id'])){
die('id is empty');
}
if(empty($_POST['name'])){
die('name is empty');
}
if(empty($_POST['age'])){
die('age is empty');
}
$id=intval($_POST['id']);
$name=$_POST['name'];
$age=intval($_POST['age']);
//连接数据库
connnetDb();
//修改指定数据
mysql_query("UPDATE users SET name='$name',age=$age WHERE id=$id");
//排错并返回
if(mysql_error()){
echo mysql_error();
}else{
header("Location:allusers.php");
}
h. deleteuser.php 执行删除操作后返回主页面
<?php
require_once 'functions.php';
//排空错误
if(empty($_GET['id'])){
die('id is empty');
}
//连接数据库
connnetDb();
$id=intval($_GET['id']);
//删除指定数据
mysql_query("DELETE FROM users WHERE id=$id");
//排错并返回页面
if(mysql_error()){
echo mysql_error();
}else{
header("Location:allusers.php");
}
求奇数分之一序列前N项和本题要求编写程序,计算序列 1 + 1/3 + 1/5 + … 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。输入样例:23输出样例:sum = 2.549541思路:循环累加输出。代码如下:a=int(input())...
日志在系统中至关重要,尤其是生产环境,一旦出现问题,首先是日志中的错误信息触发预警系统,然后通过邮件、短信甚至电话通知的方式报警给系统负责人。在排查修复问题阶段,开发测试人员通常也要查看系统日志,分析故障原因。ELK是常用的日志处理系统,Spring集成LogStash非常方便,配置LogBack将日志发送给LogStash。 代码文件 功能要点...
Springboot 启动 banner使用过 Springboot 的对上面这个图案肯定不会陌生,Springboot 启动的同时会打印上面的图案,并带有版本号。查看官方文档可以找到关...
mysql主从同步定义主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。使用主从同步的好处:通过增加从服务器来...
spring+mybatis+Atomikos JTA事务配置说明 一、概览 Atomikos是一个公司名字,旗下最著名的莫过于其Atomikos的事务管理器产品。产品分两个:一个是开源的TransactionEssentials,一个是商业的ExtremeTransactions。 TransactionEssentials的主要特征: JTA/XA 事务管理 —— 提供事务管理和连接池
中国物流业——70年代末,“物流”理念由日本、欧盟两条路径引入中国。◇中国物流发展的三次飞跃(改革开放以后)——2001年,《中国物流与采购联合会》成立——2003年元月1日进入WTO组织——国家的“十一五”规划纲要◇中国物流发展30年(改革开放后)现代物流发展趋势供应链物流以物流活动为核心,协调供应领域的生产和进货计划,销售领域的客服服务和订货处理业务,以及财务领域的库存控制等活动。◇Haier...
决策树决策树是一种树型结构的机器学习算法,它每个节点验证数据一个属性,根据该属性进行分割数据,将数据分布到不同的分支上,直到叶子节点,叶子结点上表示该样本的label. 每一条从根节点到叶子节点的路径表示分类[回归]的规则.sklearn中的决策树简单实践import numpy as npimport matplotlib.pyplot as pltfrom sklearn.datasets import load_iris, load_bostonfrom sklearn impor
漫无目的的知识索引很乏累?学东西总感觉越学越累,不懂的越来越多?努力是成功的唯一捷径,也是成功必须付出的代价,但,选择比努力更重要!今天小编给大家推荐几个优质公众号,包含算法、java、python和机器学习,快来一网打尽吧~程序员小灰作者小灰 ,一群可爱的小仓鼠用漫画的形式讲述编程技术和算法,有趣有内涵。长按上图,弹出“识别二维码”后关注Java知音专注于Java后端技术,每天推送优质技术文章,
直接导出HTML,然后打开HTML最后直接复制到word就可以了!!!之前一直在找navicat如何导出数据字典。现在发现就是这样就可以了!转载于:https://www.cnblogs.com/allen-wang32/p/5611885.html...
前言 在没有引入pmd用户态网卡驱动之前, 网卡在收到报文后,网卡驱动会将报文从网卡缓冲区拷贝到内核, 接着内核在把报文拷贝到应用层,整个过程需要2次的拷贝以及系统调用。当应用层需要发送数据时,应用层将报文拷贝到内核,接着内核拷贝到网卡缓冲区,由网卡负责发送,整个过程也需要2次的拷贝以及系统调用。 不管接收还是发送报文,系统调用以及内存拷贝都是需要消耗性能的。在引入了pmd用户态...
学完了高博的《SLAM十四讲》,基本了解了SLAM的框架结构,然后看了一些ORB-SLAM的代码,跑了几个模型,看了几篇论文,感觉还是有很多关于状态估计的问题不是很清楚,然后在知乎看到了关于slam推荐书籍,有一本状态估计和概率机器人,但是状态估计目前只有英文版,发现概率机器人有中文版,所以就买了一本概率机器人。虽然翻译质量可能不是太好,但是还是能读,有些地方还是要看英文才行!感谢翻译概率机器人的作