实用简单的mysql 数据库连接类
class DB
{
//database connection
var $con = FALSE;
function DB($MYSQL_HOST=MYSQL_HOST, $MYSQL_USER=MYSQL_USER, $MYSQL_PASS=MYSQL_PASS,$MYSQL_DB=MYSQL_DB)
{
$this->con = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) or die("Could not connect to database");
if ($this->con)
{
@mysql_select_db($MYSQL_DB, $this->con) or die ("Could not select database");
}
return $this->con;
}
function Query($sql, $tran = false)
{
// if (!file_exists(MYSQL_LOG))
// {
// @umask(0);
// @mkdir(MYSQL_LOG, 0777);
// }
// ¼־
//$fp = @fopen(MYSQL_LOG.date("Ymd").".txt", "a");
// д־
// @fwrite($fp, date("Y-m-d H:i:s")."|$sql ");
// @fclose($fp);
$this->sql = $sql;
if ($tran)
{
$this->result = @mysql_query($this->sql) OR $this->RollBack();
return $this->result;
}
else
{
mysql_query("SET NAMES 'utf8'");
//mysql_query("SET NAMES 'gbk'");
$this->result = @mysql_query($this->sql);
return $this->result;
}
}
function RollBack()
{
$this->Query("ROLLBACK;");
die("MySQL ROLLBACK;");
}
function NumRows($result)
{
$this->result = $result;
return @mysql_num_rows($this->result);
}
function FetchRow($result)
{
$this->result = $result;
return @mysql_fetch_row($this->result);
}
function FetchArray($result)
{
$this->result = $result;
return @mysql_fetch_array($this->result, MYSQL_ASSOC);
}
function FetchArray2($result)
{
$this->result = $result;
return @mysql_fetch_array($this->result, MYSQL_BOTH);
}
function FetchObject($result)
{
$this->result = $result;
return @mysql_fetch_object($this->result);
}
function FreeResult($result)
{
$this->result = $result;
return @mysql_free_result($this->result);
}
function DataSeek($result)
{
//复位记录集指针
$this->result = $result;
return mysql_data_seek($this->result,0);
}
function InsertID()
{
//$this->con = $con;
return @mysql_insert_id($this->con);
}
function Close()
{
if($this->con)
{
@mysql_close($this->con);
}
}
}
首先我们要登陆php教程(做为现在的主流开发语言)MyAdmin,不做演示。
2、创建一个数据库教程,如下图,在php(做为现在的主流开发语言)MyAdmin右边窗口中,填写数据库名称,点创建即可。
例如我们这里创建一个名字为:cncmstest 的数据库
创建成功会有如下提示:
3、点击左上角的主页按钮,返回php(做为现在的主流开发语言)MyAdmin主界面:
4、在主界面的右边点击“权限”来创建数据库帐号。
5、在权限页面中,我们点击“添加新用户”
6、在该页面中,我们填写要创建的数据库用户名,该用户的访问范围,及密码。
如上图,我们填写了用户名为:cncmsuser,该数据库用户只允许本机访问,主机一项选择本地;密码我们使用自动生成的,点下面的“Generate”会生成一个随机密码,然后点“Copy”会自动填写到密码框中。
下面的框都不选,直接拉到页面最下面点执行即可创建一个新用户。
数据库用户创建成功,会返回如下页面:
7、最重要的一步,设置该用户的数据库访问权限
在数据库用户添加成功返回的页面中可以直接设置权限。这里我们选择按数据库指定权限:
如上图,在数据库列表中选择我们刚刚创建的cncmstest,即会自动进入该数据库的权限设置页面。
在上图的权限设置中,我们把“数据”、“结构”两列的权限全部选中,管理权限都不要选。点执行即可。
到这里,我们已经全部设置完毕了,创建了一个数据库:cncmstest,并创建了数据库用户cncmsuser,特别指定了该用户只对cncmstest的访问权限。如此,便达到了我们一开始所讲的目的:为每一个数据库指定独立的用户访问权限。
好了费话不用说多了我们来看看这款php sys_get_temp_dir -返回临时文件路径函数使用方法与实现原理吧。
sys_get_temp_dir
( PHP 5中“ = 5.2.1 )
sys_get_temp_dir -返回目录路径用于临时文件
描述
字符串sys_get_temp_dir (无效)
返回目录路径的PHP商店临时文件在默认情况下。
返回值
返回路径的临时目录中。
实例
例如# 1 sys_get_temp_dir ( )的例子
Examples
Example #1 sys_get_temp_dir() example
<?php
// Create a temporary file in the temporary
// files directory using sys_get_temp_dir()
$temp_file = tempnam(sys_get_temp_dir(), 'Tux');
echo $temp_file;
?>
The above example will output something similar to:
C:WindowsTempTuxA318.tmp
此函数的实现方法:
<?php
if ( !function_exists('sys_get_temp_dir')) {
function sys_get_temp_dir() {
if (!empty($_ENV['TMP'])) { return realpath($_ENV['TMP']); }
if (!empty($_ENV['TMPDIR'])) { return realpath( $_ENV['TMPDIR']); }
if (!empty($_ENV['TEMP'])) { return realpath( $_ENV['TEMP']); }
$tempfile=tempnam(uniqid(rand(),TRUE),'');
if (file_exists($tempfile)) {
unlink($tempfile);
return realpath(dirname($tempfile));
}
}
}
?>
( PHP 4中, PHP 5中)
rawurlencode -网址编码根据的RFC 1738
描述
字符串rawurlencode (字符串$str)
编码特定字符串根据»的RFC 1738 。
参数
str
将URL进行编码。
返回值
返回一个字符串中的所有非字母数字字符除了- _ 。被替换成一个百分号( % )符号后面跟两个十六进制数字。这是编码描述»的RFC 1738年为保护字面字符被解释为特殊的URL分隔和保护的URL被毁损的传输媒体转换与性质(如一些电子邮件系统) 。
实例
例如# 1包括一个密码的FTP网址
<?php
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
$b = split('=', $a[$i]);
echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),
' is ', htmlspecialchars(urldecode($b[1])), "<br />n";
$i++;
}
?>
进行urlencode
( PHP 4中, PHP 5中)
进行urlencode -网址编码字符串
描述
字符串进行urlencode (字符串$str)
此功能方便的编码字符串被用于查询的网址的一部分,作为一种便捷的方式传递变量的下一页。
参数
str
字符串编码。
返回值
返回一个字符串中的所有非字母数字字符除了- _ 。被替换成一个百分号( % )符号后面跟两个十六进制数字和空格编码为加号( + )的迹象。这是相同的编码方式,从公布的数据编码的WWW形式,这是同样的方式在应用/的X WWW的形式了urlencoded的媒体类型。这不同于参考» RFC 1738编码(见rawurlencode ( ) )中,对历史的原因,空格编码为加号( + )的迹象。
实例
例如# 1进行urlencode ( )的例子
<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>
Example #2 urlencode() and htmlentities() example
<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>
flock
( PHP 4中, PHP 5中)
flock-便携式咨询文件锁定
描述
布尔群(资源$处理,诠释$操作[摘要& $ wouldblock ] )
flock( )可让您执行一个简单的读卡器/写模式,它可以用在几乎所有平台(包括大多数Unix衍生物甚至Windows ) 。
被释放的锁也fclose ( ) (也被称为脚本时自动完成) 。
PHP支持便携式方式锁定在一个完整的档案咨询方式(也就是说所有访问程序必须使用同样的方式锁定或它不会工作) 。
参数
把柄
一个开放的文件指针。
操作
操作下列内容之一:
LOCK_SH获得共享锁(读者) 。
LOCK_EX获得独占锁定(作家) 。
LOCK_UN释放锁(共享或专用) 。
LOCK_NB如果你不想flock( )阻止,同时锁定。 (不支持在Windows上)
wouldblock
可选的第三个参数设置为TRUE ,如果锁定会阻止( EWOULDBLOCK errno条件) 。
返回值
返回TRUE或FALSE的成功失败。
修改
版本说明
4.0.1常量的LOCK_XXX增加了。在此之前,您必须使用1 LOCK_SH , 2 LOCK_EX , 3 LOCK_UN和4 LOCK_NB
实例
例如# 1flock( )的例子
<?php
$fp = fopen("/tmp/lock.txt", "w+");
if (flock($fp, LOCK_EX)) { // do an exclusive lock
fwrite($fp, "Write something heren");
flock($fp, LOCK_UN); // release the lock
} else {
echo "Couldn't lock the file !";
}
fclose($fp);
?>
相关文章
- 操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 这篇文章主要介绍了解决Mybatis 大数据量的批量insert问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-09
Antd-vue Table组件添加Click事件,实现点击某行数据教程
这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17- 这篇文章主要介绍了详解如何清理redis集群的所有数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18
- 这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
- 在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
- 这篇文章主要介绍了vue 获取到数据但却渲染不到页面上的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-19
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
- 某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
- 在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
- 这篇文章主要介绍了mybatis-plus 处理大数据插入太慢的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-18
- mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
- 这篇文章主要介绍了postgresql数据添加两个字段联合唯一的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
- 这篇文章主要介绍了node.js如何操作MySQL数据库,帮助大家更好的进行web开发,感兴趣的朋友可以了解下...2020-10-29
Vue生命周期activated之返回上一页不重新请求数据操作
这篇文章主要介绍了Vue生命周期activated之返回上一页不重新请求数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26