首页 > 编程技术 > php

php与mysql删除指定编号的员工信息

发布时间:2016-11-25 16:34

利用php提交员工编号给mysql,然后由mysql把数据接受并利用delete进行数据删除操作了,下面我来给大家分享几个例子。

delete 语句的示例:

 代码如下 复制代码

delete from friends where user_name = 'simaopig';

语法结构中,我们就可以看出,和 update 语法一样,我们是可以省略 where 子句的。不过这是一个很危险的行为。因为如果不指定 where 子句,delete 将删除表中所有的记录,而且是立即删除

1.删除指定编号的员工信息

 代码如下 复制代码

<html>
<head>
</head>
<body>
<center>员工信息表</center>
<table border="1" align='center'>
<thead><tr><th>编号</th><th>姓名</th><th>年龄</th></tr></thead>
<tbody>
<?php
header("Content-type:text/html; charset=utf-8");
$_SESSION['arr']=array('1'=>array('name'=>'张三','age'=>18),'2'=>array('name'=>'李四','age'=>19),'3'=>array('name'=>'王五','age'=>20));
if(!empty($_POST['num'])){
unset($_SESSION['arr'][$_POST['num']]); //删除指定id的员工信息
}
if(isset($_SESSION['arr'])){
foreach ($_SESSION['arr'] as $k => $v) {
echo "<tr><td>".($k)."</td><td>".$v['name']."</td><td>".$v['age']."</td></tr>";
}
}
 
?>
</tbody>
</table>
 
<form method='post' action=""><br>
<center>
<b>输入员工编号:</b>
<input type="text" name="num" size='5'><br>
<input type='submit' value='删除' name='sub' class='btn'>
</center>
</form>
</body>
</html>

2.员工信息批量删除例子

关键技术
本实例的关键点是while()循环语句的灵活运用。根据提交的参数值,执行while()循环语句,在循环体重执行删除操作,完成数据的循环删除操作。
设计过程
(1)创建PHP脚本文件。首先,连接MySQL数据库服务器,连接MySQL中名称为db_while的数据库,并设置页面的编码格式。然后,定义循环变量变量$a和$b,将第1层while循环中的循环条件设置为$b<$a,然后,再次利用while语句循环输出数据表中的数据,并执行数据的删除操作,其代码如下:

 代码如下 复制代码

<?php
if($_POST[sub]){ //通过POST方式获取参数
 $conn=mysql_connect("localhost","root","111"); //连接mysql数据库
 mysql_select_db("db_while",$conn); //连接数据库
 mysql_query("SET NAMES GBK");//定义编码格式
 $a=$_POST[te];//接收文本框参数
 $b=0;//定义变量
while($b<$a){//while循环
 $rs=mysql_query("select * from tb_while");//执行查询操作
 while($rst=mysql_fetch_array($rs)){//将查询结果保存在数组中
$sql="delete * from tb_while where id=$b"; //sql语句
mysql_query($sql);//执行删除操作
echo"姓名为".$rst[name]."的员工已被删除<br>";//输出被删除的员工姓名
$b++
 }
 }

}
?>

(2)将该文件存储于MR266文件夹下,命名为index.php。

下面是一个站长写的一个非常简单实用的数据库操作类了,这里面主要功能是数据库连接,查询数据,删除数据,更新数据等等,这个类的特点时不限制mysql而是直接执行由外部给出的sql语句了。

例子

 代码如下 复制代码

<?php
class SqlTool{
private $conn;
private $host=”localhost”;
private $user=”root”;
private $password=”";
private $db=”bbs”;
function sqlTool(){
$this->conn=mysql_connect(“$this->host”,”$this->user”,”$this->password”);
mysql_select_db($this->db,$this->conn);
mysql_query(“set names gbk”);
}
function executedql($sql){
$res=mysql_query($sql);
return $res;
}
function executedml($sql){
$b=mysql_query($sql);
if(!$b){
echo “操作失败”;
}else{
if(mysql_affected_rows($this->conn)>0){
echo “操作成功”;
}else{
echo “没有影响到行数”;
}
}
mysql_close($this->conn);
}
}
?>

操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了一个Memcache数据缓存操作类库文件,希望对各位会有帮助了。

例子,代码如下

 代码如下 复制代码

class memcachedInit {
private $memcache;

/**
 * Memcache缓存-设置缓存
 * 设置缓存key,value和缓存时间
 * @param  string $key   KEY值
 * @param  string $value 值
 * @param  string $time  缓存时间
 */
public function set_cache($key, $value, $time = 0) {
return $this->memcache->set($key, $value, false, $time);
}

/**
 * Memcache缓存-获取缓存
 * 通过KEY获取缓存数据
 * @param  string $key   KEY值
 */
public function get_cache($key) {
return $this->memcache->get($key);
}

/**
 * Memcache缓存-清除一个缓存
 * 从memcache中删除一条缓存
 * @param  string $key   KEY值
 */
public function clear($key) {
return $this->memcache->delete($key);
}

/**
 * Memcache缓存-清空所有缓存
 * 不建议使用该功能
 * @return
 */
public function clear_all() {
return $this->memcache->flush();
}

/**
 * 字段自增-用于记数
 * @param string $key  KEY值
 * @param int    $step 新增的step值
 */
public function  increment($key, $step = 1) {
return $this->memcache->increment($key, (int) $step);
}

/**
 * 字段自减-用于记数
 * @param string $key  KEY值
 * @param int    $step 新增的step值
 */
public function decrement($key, $step = 1) {
return $this->memcache->decrement($key, (int) $step);
}

/**
 * 关闭Memcache链接
 */
public function close() {
return $this->memcache->close();
}

/**
 * 替换数据
 * @param string $key 期望被替换的数据
 * @param string $value 替换后的值
 * @param int    $time  时间值
 * @param bool   $flag  是否进行压缩
 */
public function replace($key, $value, $time = 0, $flag = false) {
return $this->memcache->replace($key, $value, false, $time);
}

/**
 * 获取Memcache的版本号
 */
public function getVersion() {
return $this->memcache->getVersion();
}

/**
 * 获取Memcache的状态数据
 */
public function getStats() {
return $this->memcache->getStats();
}

/**
 * Memcache缓存-设置链接服务器
 * 支持多MEMCACHE服务器
 * 配置文件中配置Memcache缓存服务器:
 * $InitPHP_conf['memcache'][0]   = array('127.0.0.1', '11211'); 
 * @param  array $servers 服务器数组-array(array('127.0.0.1', '11211'))
 */
public function add_server($servers) {
$this->memcache = new Memcache;
if (!is_array($servers) || empty($servers)) exit('memcache server is null!');
foreach ($servers as $val) {
$this->memcache->addServer($val[0], $val[1]);
}
}
}

使用方法

$newclass = new memcachedInit();
$newclass->getVersion() //获取版本号
$newclass->close() //关闭Memcache链接
$newclass->clear($key) //从memcache中删除一条缓存
$newclass->get_cache($key) //通过KEY获取缓存数据

上面就简单介绍了它的使用方法了,其实还有很多在这里我就不介绍了呀。

总结,这个只是一个最基于的Memcache缓存操作类了,比起像数据库缓存类操作会更好更复杂了哦,希望例子能帮助到各位朋友哦。

socket_connect函数在php默认安装是不给支持的,如果要使用它我们需要在php.ini中进行简单的开启,下面我们一起来看看吧。

linux系统中开启socket_connect方法

#cd /home/php/ext/sockets #/server/php/bin/phpize #./configure --prefix=/usr/local/php/lib --with-php-config=/server/php/bin/php-config --enable-sockets #make #make install

再修改/usr/local/php/etc/php.ini文件

#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/" (php5.4版本以上不用加扩展路径) extension=sockets.so

windows系统开启socket_connect步骤

直接修改php.ini 文件 去掉extension=PHP_sockets.dll 前面的分号


最后重启一下你的服务器环境就可以了,如iis apache nginx都可以正常使用socket_connect函数

socket_connect 说明

bool socket_connect ( resource $socket , string $address [, int $port = 0 ] )

成功时返回 TRUE, 或者在失败时返回 FALSE。

例子

 代码如下 复制代码

<?php
$address = gethostbyname ($ip);
        $command = "ping -c 1 " . $address; 
        $r = exec($command); 
          if ($r[0]=="r")
          {       
            $socket = socket_create (AF_INET, SOCK_STREAM, 0);
            if ($socket < 0) {
                echo "socket_create() failed: reason: " . socket_strerror ($socket) . "n";
            } else {
                echo "OK.n";
            }
?>

今天碰到一个连接mysql的怪问题,我在php 环境本地用ip连接mysql响应快,用localhost连接慢,后来百度了一下整理了一些解决办法,大家一起来看看。

很长时间了,本地php环境,用localhost连接mysql时,只要访问有查询数据库的页面,就会发生响应慢的现象,找了些资料也没解决。

今天突然用ip连接了一下,发下速度竟然快了好多,朋友过来帮看了下。

检查了一下hosts文件,发现127.0.0.1没有解析到localhost,恍然大悟啊。

没有解析过去,响应速度当然慢了,它每次都要自己查找一遍。

第二种就是修改php.ini配置文件里的mysql.default_host,并且把mysql_connect()中的第一个参数写为空字符串;这个方法还没有测试成功过,可能是我把某些地方忽略了吧~~


远程连接MYSQL慢


出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在my.ini(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一句,保存。

开始--》运行--》cmd--》net stop mysql --》net start mysql--》哈哈,成功

my.ini所在路径如:D:\Program Files\MySQL\MySQL Server 5.0\my.ini

原来是MySQL的问题呀,这样操作后就不能在MySQL的授权表中使用主机名了而只能用ip。

标签:[!--infotagslink--]

您可能感兴趣的文章: