Keyboard Shortcuts?
Next menu item
Previous menu item
Previous man page
Next man page
Scroll to bottom
Scroll to top
Goto homepage
Goto search(current page)
Focus search box
Change language:
Brazilian Portuguese
Chinese (Simplified)
手册中所有示例的列表
There are no user contributed notes for this page.PHP面试题:请说明 PHP 中传值与传引用的区别
在当今的互联网大军中,不少人顺应时代潮流,选择了PHP开发作为自己的发展方向,进行。今天,优就业的老师来给大家讲一讲:说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?(更多内容推荐:)
按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。
function test(&$a) {$a=$a+100; }$b=1;echo $b;//输出1test($b); //这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了 echo &&;echo $b;//输出101
官方微信更多精彩,扫码关注 或微信搜索:ujiuye
官方微博更多精彩,扫码关注 或微博搜索:优就业
注:本站稿件未经许可不得转载,转载请保留出处及源文件地址。
(责任编辑:zhangjs)
关键词阅读
免费声明:本站所提供真题均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。
优就业官方微信扫描二维码,即可与小U亲密互动
优就业官方QQ号
咨询电话(09:00-22:00)400-650-7353
IT培训友情链接
|||||||||||||||||||||||||||||||||||||
(点击一键加群)php备份数据库脚本的几个例子
作者:用户
本文讲的是php备份数据库脚本的几个例子,
// 备份数据库
$host = &localhost&;
$user = &root&; //数据库账号
$password = &&; //数据库密码
// 备份数据库
$host = "localhost";
$user = "root"; //数据库账号
$password = ""; //数据库密码
$dbname = "mysql"; //数据库名称
// 这里的账号、密码、名称都是从页面传过来的
if (!mysql_connect($host, $user, $password)) // 连接mysql数据库
echo '数据库连接失败,请核对后再试';
if (!mysql_select_db($dbname)) // 是否存在该数据库
echo '不存在数据库:' . $dbname . ',请核对后再试';
mysql_query("set names 'utf8'");
$mysql = "set charset utf8;\r\n";
$q1 = mysql_query("show tables");
while ($t = mysql_fetch_array($q1))
$table = $t[0];
$q2 = mysql_query("show create table `$table`");
$sql = mysql_fetch_array($q2);
$mysql .= $sql['Create Table'] . ";\r\n";
$q3 = mysql_query("select * from `$table`");
while ($data = mysql_fetch_assoc($q3))
$keys = array_keys($data);
$keys = array_map('addslashes', $keys);
$keys = join('`,`', $keys);
$keys = "`" . $keys . "`";
$vals = array_values($data);
$vals = array_map('addslashes', $vals);
$vals = join("','", $vals);
$vals = "'" . $vals . "'";
$mysql .= "insert into `$table`($keys) values($vals);\r\n";
$filename = $dbname . date('Ymjgi') . ".sql"; //存放路径,默认存放到项目最外层
$fp = fopen($filename, 'w');
fputs($fp, $mysql);
fclose($fp);
echo "数据备份成功";
#!/usr/bin/php www.111cn.net
header('Content-Type:text/charset=utf-8');
define('BACK_PATH', dirname(__FILE__));
为空数组就备份所有数据库
$back_databases = array('learning','wp');
$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_passwd = 'root';
if($conn = mysql_connect($mysql_host, $mysql_user, $mysql_passwd)){
$databases = array();
mysql_select_db('mysql', $conn);
=mysql_query('show databases',$conn);
while($row = mysql_fetch_array($query))
if(empty($row))
$database = $row[0];
if(!empty($back_databases) && !in_array($database, $back_databases))
$sql_dir = BACK_PATH . "/{$database}.sql";
$execs = "mysqldump --user={$mysql_user} --password={$mysql_passwd} {$database} & " . $sql_
system($execs);
if(file_exists($sql_dir . '.gz')) {
unlink($sql_dir . '.gz');
system('gzip ' . $sql_dir);
$host="##mysql服务器地址##";
$user="##登录帐号##";
$password="##登录密码##";
$dbname="##数据库名##";
$filename="##备份文件路径##";
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
$mysql.="CREATE DATABASE IF NOT EXISTS `".$dbname."`;\r\n";
$mysql.="USE `".$dbname."`;\r\n\r\n";
$q0=mysql_query("set names utf8");
$q1=mysql_query("show tables");
while($t=mysql_fetch_array($q1)){
$table=$t[0];
$mysql.="DROP TABLE IF EXISTS `".$table."`;\r\n";
$q2=mysql_query("show create table `$table`");
$sql=mysql_fetch_array($q2);
$mysql.=$sql['Create Table'].";\r\n\r\n";
$q3=mysql_query("select * from `$table`");
while($data=mysql_fetch_assoc($q3)){
$keys=array_keys($data);
$keys=array_map('addslashes',$keys);
$keys=join('`,`',$keys);
$keys="`".$keys."`";
$vals=array_values($data);
$vals=array_map('addslashes',$vals);
$vals=join("','",$vals);
$vals="'".$vals."'";
$mysql.="insert into `$table`($keys) values($vals);\r\n";
$mysql.="\r\n";
$fp = fopen($filename,'wb');
fputs($fp,$mysql);
fclose($fp);
include_once('lib/pclzip.lib.php');
$archive = new PclZip($filename.'.zip');
$v_list = $archive-&create($filename);
if ($v_list == 0) {
die("Error : ".$archive-&errorInfo(true));
if(file_exists($filename)){
unlink($filename);
echo "Mysql's backup successfully to ".$filename.".zip";
Zip打包备份代码,几乎就是全抄demo,太方便了:
include_once('lib/pclzip.lib.php');
$src="##源路径##";
$dest="##目标zip路径##";
$archive = new PclZip($dest);
$v_list = $archive-&create($src);
if ($v_list == 0) {
die("Error : ".$archive-&errorInfo(true));
print("Success");
pclzip.lib.php这个压缩包文件大家百度去下载这里未提供。
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
数据库自动备份脚本、oracle数据库备份脚本、mysql数据库备份脚本、数据库备份脚本、linux备份数据库脚本,以便于您获取更多的相关知识。
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
开发者常用软件,超百款实用软件一站式提供
云栖社区()为您免费提供相关信息,包括
,所有相关内容均不代表云栖社区的意见!php把session写入数据库示例
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了php把session写入数据库示例,需要的朋友可以参考下
代码如下:&?phpclass session_handler {&protected $maxlifetime =&protected $dbHandle =&public $config =&public static function init($args) {&&return new self($args);&}&public function __construct($args) {&&$this-&config = $&&$this-&maxlifetime = get_cfg_var("session.gc_maxlifetime");&&session_set_save_handler(&&array($this, "open"),&&array($this, "close"),&&array($this, "read"),&&array($this, "write"),&&array($this, "destroy"),&&array($this, "gc"));&}&public function open() {&&$this-&link = mysqli_connect(&&$this-&config['host'], &&$this-&config['user'], &&$this-&config['password'], &&$this-&config['database']);&&mysqli_set_charset($this-&link, "utf8");&&$sql = 'CREATE TABLE IF NOT EXISTS `%s` (&&`session_id` varchar(255) NOT NULL,&&`session_data` text,&&`session_expires` char(10) NOT NULL,&&PRIMARY KEY (`session_id`)&&) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_';&&$sql = sprintf($sql, $this-&config['table']);&&mysqli_query($this-&link, $sql);&&&}&public function close() {&&&}&&public function read($session_id) {&&if(empty($session_id))&&$sql = 'SELECT `session_data` AS `data` FROM `%s` WHERE `session_id` = "%s" AND `session_expires` & "%u"';&&$sql = sprintf($sql, &&mysqli_real_escape_string($this-&link, $this-&config['table']), &&mysqli_real_escape_string($this-&link, $session_id),&&time());&&$result = mysqli_query($this-&link, $sql);&&$row = mysqli_fetch_assoc($result);&&return $row['data'];&}&public function write($session_id, $session_data) {&&if(empty($session_id))&&$newExpires = time() + $this-&&&$sql = 'REPLACE INTO `%s` SET `session_id` = "%s", `session_data` = "%s", `session_expires` = "%u"';&&$sql = sprintf($sql, &&mysqli_real_escape_string($this-&link, $this-&config['table']), &&mysqli_real_escape_string($this-&link, $session_id),&&mysqli_real_escape_string($this-&link, $session_data),&&$newExpires);&&$result = mysqli_query($this-&link, $sql);&&return mysqli_affected_rows($this-&link);&&& }&public function destroy($session_id) {&&$sql = 'DELETE FROM `%s` WHERE `session_id` = "%s"';&&$sql = sprintf($sql, &&mysqli_real_escape_string($this-&link, $this-&config['table']), &&mysqli_real_escape_string($this-&link, $session_id));
&&$result = mysqli_query($this-&link, $sql);&&return mysqli_affected_rows($this-&link);&&& }&public function gc() {&&$sql = 'DELETE FROM `%s` WHERE `session_expires` & "%u"';&&$sql = sprintf($sql, &&mysqli_real_escape_string($this-&link, $this-&config['table']), &&time());&&$result = mysqli_query($this-&link, $sql);&&return mysqli_affected_rows($this-&link);&&& }}
class session {
&public static $collection =&public static function open($clean = false, $token = false) {&&if($clean) ob_end_clean();&&if($token) session_id($token);&&session_start();&&self::$collection = $_SESSION;&}&public static function id() {&&$num_args = func_num_args();&&if($num_args) {&&&$args = func_get_arg(0);&&&return session_id($args);&&}else{&&&return session_id();&&}&}&public static function get($name) {&&return isset($_SESSION[$name]) ? $_SESSION[$name] :&}&public static function set($name, $value) {&&$_SESSION[$name] = $&&&}&public static function delete($name) {&&if(!isset($_SESSION[$name]))&&unset($_SESSION[$name]);&&&}&public static function destroy() {&&session_destroy();&}}
$config = array("host"=& "127.0.0.1","user"=& "root","password"=& "123456","database"=& "test","charset"=& "utf8","table"=& "user_session");
session_handler::init($config);session::open();session::set("profile", array("id"=& 1, "user"=& "haowei", "vip-level"=& 6));
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具史安平是一个对编程,吉他,美食,中医,健身充满了喜爱的废材,但他没有放弃,依然孜孜不倦的行走在路上,探寻生命的意义 - 欢迎来到我的博客
当前位置:
[php]数据库插入失败,单双引号和实体标签转义
[php]数据库插入失败,单双引号和实体标签转义
字体大小: [
&&& 关于php数据库写入数据出错的问题,我曾今遇到过,原因就是单引号的问题,之前做中文网站的时候没问题,但是那天给一个客户做的洋网站却始终提示插入失败,找到了原因,是英文中单引号的问题,需要对其进行转义。
&&& 那么使用怎样的函数呢?如下:
&&&&1、addslashes — 使用反斜线引用(转义)字符串;
返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(\')、双引号(\")、反斜线(\\)与 NUL(NULL 字符)。
一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O\'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \\ 作为转义符:O\\\'reilly。这样可以将数据放入数据库中,而不会插入额外的 \\。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 \' 时将使用 \' 进行转义。默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
2、stripslashes — 去掉字符串的反斜杠引用(转义)
即同addslashes()做相反的工作;
if (!get_magic_quotes_gpc()) {
$crname = addslashes($_POST[\'crname\']);
$crname = $_POST[\'crname\' ];
$sql = \"INSERT INTO lastnames (lastname) VALUES (\'$crname\')\";
&&&& 除了单双引号转义,接下来说说实体标签转化的问题,他同样会影响到页面的显示甚至脚本的执行。遇到关于留言板之类的可以让用户输入信息的地方,这些地方都是需要注意的,因为不做转实体之类的话,html代码、script脚本可以轻易的被输入保存,并被其他用户执行;比如;如果不转实体标签,将会被浏览器执行
&&&&1、htmlspecialchars() 转义特别的字符为HTML实体;
&&& \'&\' (ampersand) becomes \'&\'
&&& \'\"\' (double quote) becomes \'&\' when ENT_NOQUOTES is not set.
&&& \'\'\' (single quote) becomes \''\' only when ENT_QUOTES is set.
&&& \'<\' (less than) becomes \'&\'
&&& \'>\' (greater than) becomes \'&\'
&&&&2、htmlspecialchars_decode()将实体转成HTML代码,函数1的反函数
&&&&3、 htmlentities()这个是全部转换html实体,和htmlspecialchars()区别在于,这个函数是转义全部的字符,而htmlspecialchars()仅仅转义上面限定的5个特殊字符!
本文来自:绵阳史安平个人博客.励志于每一位朋友
欢迎转载,转载请注明本文链接:
/arc-151.html
猜你也喜欢的:}