新浪sae数据库连接php,怎样连接SAE的数据库解决方案

PHP code<?php

/

// SpeedPHP中文PHP框架, Copyright (C) 2008 - 2010 SpeedPHP.com //

/

/**

* SAE中MySQL数据库的驱动支持

*

* SAE是Sina App Engine(新浪应用引擎)的缩写,SAE是一个分布式web应用开发运行的服务平台,

* 其不仅仅包含创建、部署web应用的简单交互,更涉及一整套大规模分布式服务的解决方案。

*

* db_sae 封装了SAE提供的SaeMysql类的驱动操作。

*/

class db_sae {

/**

* 数据库链接句柄

*/

public $conn;

/**

* 执行的SQL语句记录

*/

public $arrSql;

/**

* 按SQL语句获取记录结果,返回数组

*

* @param sql 执行的SQL语句

*/

public function getArray($sql)

{

$this->arrSql[] = $sql;

$result = $this->conn->getData($sql);

if( $this->conn->errno() )spError("{$sql}
执行错误: " . $this->conn->error());

return $result;

}

/**

* 返回当前插入记录的主键ID

*/

public function newinsertid()

{

return $this->conn->lastId();

}

/**

* 格式化带limit的SQL语句

*/

public function setlimit($sql, $limit)

{

return $sql. " LIMIT {$limit}";

}

/**

* 执行一个SQL语句

*

* @param sql 需要执行的SQL语句

*/

public function exec($sql)

{

$this->arrSql[] = $sql;

$result = $this->conn->runSql($sql);

if( $this->conn->errno() )spError("{$sql}
执行错误: " . $this->conn->error());

return $result;

}

/**

* 返回影响行数

*/

public function affected_rows()

{

return FALSE; // SAE环境暂时无法获取影响行数

}

/**

* 获取数据表结构

*

* @param tbl_name 表名称

*/

public function getTable($tbl_name)

{

return $this->getArray("DESCRIBE {$tbl_name}");

}

/**

* 构造函数

*

* @param dbConfig 数据库配置

*/

public function __construct($dbConfig)

{

if(TRUE == SP_DEBUG)sae_set_display_errors(TRUE);

$this->conn = new SaeMysql();

if( $this->conn->errno() )spError("数据库链接错误 : " . $this->conn->error());

$this->conn->setCharset("UTF8");

}

/**

* 对特殊字符进行过滤

*

* @param value 值

*/

public function __val_escape($value, $quotes = FALSE) {

if(is_null($value))return 'NULL';

if(is_bool($value))return $value ? 1 : 0;

if(is_int($value))return (int)$value;

if(is_float($value))return (float)$value;

if(@get_magic_quotes_gpc())$value = stripslashes($value);

return '\''.$this->conn->escape($value).'\'';

}

/**

* 析构函数

*/

public function __destruct()

{

@$this->conn->closeDb();

}

/**

* getConn 取得Sae MySQL对象

* 为了更好地使用Sea提供MySQL类,getSeaDB函数将返回Sae MySQL对象供开发者使用

*/

public function getConn()

{

return $this->conn;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值