首页 后端开发 php教程 怎样连接SAE的数据库解决方案

怎样连接SAE的数据库解决方案

Jun 13, 2016 pm 01:53 PM
gt public quot sql this

怎样连接SAE的数据库
求问..还是上次拆框架那个事,需要连接SAE的数据库,真心没自己设过数据库阿.狂汗.

sae那里就给了这个sae.class.php类, 该肿么用?...............定义数据显示是要另立一个数据COM文件呢?还是就写在这个类里?

拆框架真心太悲剧乐, MVC结构,入口文件->数据com层->mod层->pageletes层->表现层->modul层,一层套一层, 我全部给include到入口文件里了,这样写对不对?感觉很绝望. 不知道该进继续拆好,还是退一步重新使用框架好.
 

Sae Mysql Class

$mysql = new SaeMysql();
 
$sql = "SELECT * FROM `user` LIMIT 10";
$data = $mysql->getData( $sql );
$name = strip_tags( $_REQUEST['name'] );
$age = intval( $_REQUEST['age'] );
$sql = "INSERT INTO `user` ( `name` , `age` , `regtime` ) VALUES ( '" . $mysql->escape( $name ) . "' , '" . intval( $age ) . "' , NOW() ) ";
$mysql->runSql( $sql );
if( $mysql->errno() != 0 )
{
  die( "Error:" . $mysql->errmsg() );
}
 
$mysql->closeDb();
?>

------解决方案--------------------
再来一个...嘿嘿 

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}<br>执行错误: " . $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}<br>执行错误: " . $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;
        }
} <div class="clear">
                 
              
              
        
            </div>
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Hibernate 框架中 HQL 和 SQL 的区别是什么? Hibernate 框架中 HQL 和 SQL 的区别是什么? Apr 17, 2024 pm 02:57 PM

HQL和SQL在Hibernate框架中进行比较:HQL(1.面向对象语法,2.数据库无关的查询,3.类型安全),而SQL直接操作数据库(1.与数据库无关的标准,2.可执行复杂查询和数据操作)。

华为GT3 Pro和GT4的差异是什么? 华为GT3 Pro和GT4的差异是什么? Dec 29, 2023 pm 02:27 PM

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

Oracle SQL中除法运算的用法 Oracle SQL中除法运算的用法 Mar 10, 2024 pm 03:06 PM

《OracleSQL中除法运算的用法》在OracleSQL中,除法运算是常见的数学运算之一。在数据查询和处理过程中,除法运算可以帮助我们计算字段之间的比例或者得出特定数值的逻辑关系。本文将介绍OracleSQL中除法运算的用法,并提供具体的代码示例。一、OracleSQL中除法运算的两种方式在OracleSQL中,除法运算可以使用两种不同的方式进行

Oracle和DB2的SQL语法比较与区别 Oracle和DB2的SQL语法比较与区别 Mar 11, 2024 pm 12:09 PM

Oracle和DB2是两个常用的关系型数据库管理系统,它们都有自己独特的SQL语法和特点。本文将针对Oracle和DB2的SQL语法进行比较与区别,并提供具体的代码示例。数据库连接在Oracle中,使用以下语句连接数据库:CONNECTusername/password@database而在DB2中,连接数据库的语句如下:CONNECTTOdataba

详解MyBatis动态SQL标签中的Set标签功能 详解MyBatis动态SQL标签中的Set标签功能 Feb 26, 2024 pm 07:48 PM

MyBatis动态SQL标签解读:Set标签用法详解MyBatis是一个优秀的持久层框架,它提供了丰富的动态SQL标签,可以灵活地构建数据库操作语句。其中,Set标签是用于生成UPDATE语句中SET子句的标签,在更新操作中非常常用。本文将详细解读MyBatis中Set标签的用法,以及通过具体的代码示例来演示其功能。什么是Set标签Set标签用于MyBati

SQL中的identity属性是什么意思? SQL中的identity属性是什么意思? Feb 19, 2024 am 11:24 AM

SQL中的Identity是什么,需要具体代码示例在SQL中,Identity是一种用于生成自增数字的特殊数据类型,它常用于唯一标识表中的每一行数据。Identity列通常与主键列配合使用,可以确保每条记录都有一个独一无二的标识符。本文将详细介绍Identity的使用方式以及一些实际的代码示例。Identity的基本使用方式在创建表时,可以使用Identit

SQL出现5120错误怎么解决 SQL出现5120错误怎么解决 Mar 06, 2024 pm 04:33 PM

解决办法:1、检查登录用户是否具有足够的权限来访问或操作该数据库,确保该用户具有正确的权限;2、检查SQL Server服务的帐户是否具有访问指定文件或文件夹的权限,确保该帐户具有足够的权限来读取和写入该文件或文件夹;3、检查指定的数据库文件是否已被其他进程打开或锁定,尝试关闭或释放该文件,并重新运行查询;4、尝试以管理员身份运行Management Studio等等。

如何使用SQL语句在MySQL中进行数据聚合和统计? 如何使用SQL语句在MySQL中进行数据聚合和统计? Dec 17, 2023 am 08:41 AM

如何使用SQL语句在MySQL中进行数据聚合和统计?在进行数据分析和统计时,数据聚合和统计是非常重要的步骤。MySQL作为一个功能强大的关系型数据库管理系统,提供了丰富的聚合和统计函数,可以很方便地进行数据聚合和统计操作。本文将介绍使用SQL语句在MySQL中进行数据聚合和统计的方法,并提供具体的代码示例。一、使用COUNT函数进行计数COUNT函数是最常用

See all articles