文件名称:my_db.php
<?php
class DataBase
{
var $pConnect=FALSE;//是否使用长连接
var $mHost;//数据库主机
var $mDatabase;
var $db; //数据库
var $mUser;//数据库用户名
var $mPwd;//数据库用户密码
var $mConn;//连接标识
var $result;// 执行query命令的结果资源标识
var $num_rows;// 返回的条目数
var $insert_id;// 传回最后一次使用 INSERT 指令的 ID
var $affected_rows;// 传回query命令所影响的列数目
// INSERT、UPDATE 或 DELETE 所影响的列 (row) 数目。
// delete 如果不带where,那么则返回0
//构造函数
public function __construct($host,$user,$pwd,$db)
{
$this->mHost=$host;
$this->mUser=$user;
$this->mPwd=$pwd;
$this->db=$db;
}
//数据库连接
public function connect()
{
if($this->pConnect)
$this->mConn=mysql_pconnect()($this->mHost,$this->mUser,$this->mPwd);//长连接
else
$this->mConn=mysql_connect()($this->mHost,$this->mUser,$this->mPwd);//short connect
if(!$this->mConn) $this->dbhalt("不能连接数据库!");
if($this->db=="") $this->db=$this->dbDatabase;
if(!mysql_select_db($this->db,$this->mConn))
$this->dbhalt("数据库不可用!");
} // eof#dbconnect()
//更改数据库
public function dbChange($db){
$this->db=$db;
$this->connect();
}
//执行SQL语句,返回结果资源id
public function execute($sql){
$this->result=mysql_query()($sql);
return $this->result;
}
//获取数组-索引和关联
public function fetchArray($resultType=MYSQL_BOTH)
{
return mysql_fetch_array($this->result,$resultType);
}
//获取关联数组
public function fetchAssoc()
{
return mysql_fetch_assoc($this->result);
}
//获取数字索引数组
public function fetchIndexArray()
{
return mysql_fetch_row($this->result);
}
//获取对象数组
public function fetchObject()
{
return mysql_fetch_object($this->result);
}
//返回记录行数
function numRows()
{
return mysql_num_rows($this->result);
}
//返回主机中所有数据库名
public function dbNames()
{
$rsPtr=mysql_list_dbs($this->mConn);
$i=0;
$cnt=mysql_num_rows($rsPtr);
while($i<$cnt)
{
$rs[]=mysql_db_name($rsPtr,$i);
$i++;
}
return $rs;
}
function dbhalt($errmsg){
$msg="数据库有问题!";
$msg=$errmsg;
echo"$msg";
die();
}
//删
function delete($sql){
$result=$this->execute($sql,$dbbase);
$this->affected_rows=mysql_affected_rows($this->dbLink);
$this->free_result($result);
return $this->affected_rows;
}
//增
function insert($sql){
$result=$this->execute($sql,$dbbase);
$this->insert_id=mysql_insert_id($this->dbLink);
$this->free_result($result);
return $this->insert_id;
}
//改
function update($sql){
$result=$this->execute($sql,$dbbase);
$this->affected_rows=mysql_affected_rows($this->dbLink);
$this->free_result($result);
return $this->affected_rows;
}
//关闭连接
function dbclose(){
mysql_close($this->dbLink);
}
}// end class
?>
调用示例:
<?php
include "class_database.php";
$mydb=new DataBase("localhost","root","123456","test");
$mydb->connect();
$mydb->execute("set names GBK");
$mydb->execute("select * from usrs");
print_r($mydb->dbNames());
?>
如果已经安装了lynx和php5-cli,那么就可以很方便的安装pear包了。
如果安装了lynx和php5-cli,直接运行 # lynx -source http://pear.php.net/go-pear | php 就可以出现安装界面了。
直接按提示回车就行了。遇到y/n选择直接y就可以了。不需要输入任何东西就可以全部安装成功。
如果没有安装这两个,这样运行会报错的。
这个时候就需要安装这两个了。在ubuntu下很简单。
直接apt-get install lynx 安装lynx
apt-get install php5-cli 安装php5-cli 这里会更改些php.ini配置,最后好了重启下apache就可以用上面那条命令安装pear包了。
apt-get install php-pear
wget http://pear.php.net/go-pear
php go-pear
//lynx -source http://pear.php.net/go-pear | php
修改php.ini 增加include_path=".:/usr/local/php/PEAR" (注意这个路径要根据实际修改)
重启NGIN就可以了。
或者通过sudo apt-get install php-pear安装。
本文为大家介绍php的fwrite函数的用法,供大家参考。
PHP fwrite()
fwrite() 函数用于向文件写入字符串,成功返回写入的字符数,否则返回 FALSE 。
语法:
int fwrite( resource handle, string string [, int length] )
fwrite() 把 string 的内容写入文件指针 handle 处。
参数说明: 参数 说明
handle 要写入字符串的文件指针,一般由 fopen() 函数创建
data 要写入的字符串
length 可选,规定要写入的最大字节数
如果指定了可选参数 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止。
例子:
<?php
// 要写入的文件名字
$filename = 'file.txt';
// 写入的字符
$word = "你好!";
$fh = fopen($filename, "w");
echo fwrite($fh, $word); // 输出:6
fclose($fh);
?>
执行该例子程序,在程序同目录下,file.txt 文件内容为:你好!
使用 length 参数
上面的例子中,如果使用了 length 参数,则至多写入 length 个字符串:
echo fwrite($fh, $word, 4); // 输出:4
PHP fwrite 追加写入
对文件的追加写入,实际与 fwrite 函数无关,而与 fopen 函数打开文件的模式有关。当 fopen 打开文件时,mode 参数选择 a ,则表示在文件后面追加写入:
<?php
$filename = 'file.txt';
$word = "你好!";
$fh = fopen($filename, "a");
echo fwrite($fh, $word);
fclose($fh);
?>
PHP fwrite 换行写入
如果要在文件中实现换行写入,只需要在写入内容中需要换行的地方添加换行符 n 即可:
<?php
$filename = 'file.txt';
$word = "你好!n";
$fh = fopen($filename, "a");
echo fwrite($fh, $word);
fclose($fh);
?>
上面的例子在内容结尾添加了 n 换行符。要让 n 在写入文件时表示换行,写入时需使用双引号(如上面例子),如果使用单引号,n 字符不会被解释为换行而是当做 n 字符串,点击查看:PHP 字符串中单引号与双引号的区别。
n 已经是真正意义上的换行,在 windows 操作系统上如果要模拟回车换行(即用写字板打开文件时,不是黑方块而是一行一行的列出),可以在 n 前面加入 r 回车符:
$word = "你好!rn";
?>
PHP fwrite 写入权限
当打开一个已经存在的文件(通常是追加写入模式下),有必要检测该文件是否具有写入权限,从而避免一个系统错误的发生。使用 is_writable 函数检测文件是否可写。
下面是追加写入模式下一个比较严格检查的例子:
<?php
$filename = 'file.txt';
$word = "你好!n";
// 确定文件存在并且可写
if (is_writable($filename)) {
//打开文件
if (!$fh = fopen($filename, 'a')) {
echo "不能打开文件 $filename";
exit;
}
// 写入内容
if (fwrite($fh, $word) === FALSE) {
echo "不能写入到文件 $filename";
exit;
}
echo "成功地将 $word 写入到文件 $filename";
fclose($fh);
} else {
echo "文件 $filename 不可写";
}
?>
PHP fwrite 函数只是执行向文件写入字符串的动作,实际它的行为结果取决于 fopen 函数更多一些。如果想一次性将字符串写入或追加至文件,file_put_contents 函数可能是更优的选择。
PHP file_put_contents 函数:将字符串写入或追加到文件
PHP file_put_contents() 函数是一次性向文件写入字符串或追加字符串内容的最合适选择。
file_put_contents()
file_put_contents() 函数用于把字符串写入文件,成功返回写入到文件内数据的字节数,失败则返回 FALSE。
语法:
int file_put_contents ( string filename, string data [, int flags [, resource context]] )
参数说明: 参数 说明
filename 要写入数据的文件名
data 要写入的数据。类型可以是 string,array(但不能为多维数组),或者是 stream 资源
flags 可选,规定如何打开/写入文件。可能的值:
FILE_USE_INCLUDE_PATH:检查 filename 副本的内置路径
FILE_APPEND:在文件末尾以追加的方式写入数据
LOCK_EX:对文件上锁
context 可选,Context是一组选项,可以通过它修改文本属性
例子:
echo file_put_contents("test.txt", "This is something.");
?>
运行该例子,浏览器输出:
18
而 test.txt 文件(与程序同目录下)内容则为:This is something.。
提示
如果文件不存在,则创建文件,相当于fopen()函数行为。
如果文件存在,默认将清空文件内的内容,可设置 flags 参数值为 FILE_APPEND 以避免(见下)。
本函数可安全用于二进制对象。
以追加形式写入内容
当设置 flags 参数值为 FILE_APPEND 时,表示在已有文件内容后面追加内容的方式写入新数据:
<?php
file_put_contents("test.txt", "This is another something.", FILE_APPEND);
?>
执行程序后,test.txt 文件内容变为:This is something.This is another something.
file_put_contents() 的行为实际上等于依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
参考阅读
PHP fopen:文件创建与打开。
PHP fwrite:向文件写入字符串。
PHP close:关闭一个打开的文件。
PHP file_get_contents:把整个文件内容读入一个字符串。
PHP 检查文件能否读写执行 is_readable、is_writable 与 is_executable 函数
is_readable() 函数用于检查文件是否可读,is_writable() 函数用于检查文件是否可写入,is_executable() 函数用于检查文件是否可执行。
is_readable()
is_readable() 函数用于检查文件是否可读,指定的文件或目录存在并且可读则返回 TRUE,否则返回 FALSE。
语法:
bool is_readable( string filename )
例子:
$filename = "test.text";
if (is_readable($filename)) {
echo "文件 $filename 可读";
} else {
echo "文件 $filename 不可读";
}
?>
is_writable()
is_writable() 函数用于检查文件是否可写入,如果文件存在并且可写则返回 TRUE,否则返回 FALSE。
语法:
bool is_writable( string filename )
filename 参数可以是一个允许进行是否可写检查的目录名。
例子:
$filename = "test.text";
if (is_writable($filename)) {
echo "文件 $filename 可写";
} else {
echo "文件 $filename 不可写";
}
?>
is_executable()
is_executable() 函数用于检查文件是否可执行,如果文件存在且可执行则返回 TRUE,否则返回 FALSE。用法请参考 is_writable()。