php的phalcon框架教程的db怎样获取mysql执行过程中的错误信息

phalcon 操作mysql数据库 如数据写入和输出-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
phalcon 操作mysql数据库 如数据写入和输出
来源:互联网 更新时间: 10:50:49 责任编辑:王亮字体:
用户提出问题:phalcon 操作mysql数据库 如数据写入和输出,具体如下:
通过互联网整理获得以下解决方法:=================1楼=====================
Phalcon\Filter
具体看手册.
=================2楼=====================
去阅读一下它的文档就知道怎么做了
如果您还有更好的解决方法,请在最下面评论中留下您的解决方法
相关文章:
上一篇文章:下一篇文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号PHP开发中Phalcon框架中的数据库操作_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
PHP开发中Phalcon框架中的数据库操作
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Phalcon也作falcon,意为猎鹰,一种猛禽,飞得快,飞得高,飞得好,她是对PHP框架的新尝试。
PhalconPlus完全免费,并且开源,你可以轻松获取它的源代码,并且做任何更改无需合并到官方分支。
上手简单,0门槛,所有准备工作基本都可以自动完成。极速提升开发效率,从此跟XX说拜拜。
// 入口文件, 仅两行就搞定, 还能再简单吗?
$bootstrap = new \PhalconPlus\Bootstrap(dirname(__DIR__));
$bootstrap->exec();
快速使用QueryBuilder
// QueryBuilder
DealRecord::getInstance() // 非单例,每次创建实例
->createBuilder("dr") // dr为模型的别名
->columns("dr.dealId, dr.borrowerId")
->limit(1)
->getQuery()
->execute();
注册DB服务,添加profiler
// register db service
$di->setShared('dbDemo', function() use ($di) {
$mysql = new \PhalconPlus\Db\Mysql($di, "dbDemo");
$connection = $mysql->getConnection();
$eventsManager = new \Phalcon\Events\Manager();
$profiler = $di->getProfiler();
$eventsManager->attach('db', function($event, $connection) use ($profiler) {
if ($event->getType() == 'beforeQuery') {
$profiler->startProfile($connection->getSQLStatement());
if ($event->getType() == 'afterQuery') {
$profiler->stopProfile();
$connection->setEventsManager($eventsManager);
db配置,支持连接超时/失败重试
// db 配置
// 支持连接超时,失败重试
return array(
'dbDemo' => array(
"host" => "127.0.0.1",
"port" => 3306,
"username" => "root",
"password" => "",
"dbname" => "p2p",
"charset" => "utf8",
// 连接超时 1 秒
"timeout" => 1,
// 失败重试间隔200ms
"retryInterval" => 200000,
// 失败重试次数
"retryTimes" => 5,
注册RPC服务
// 基于Yar的RPC服务
// Yar是鸟哥(/)为PHP量身定制的RPC
$di->set("rpc", function() use ($di, $config, $bootstrap) {
if($config->debugRPC == true) {
// 如果debugRPC==true, 则加载server模块的配置, 直接本地调用
$bootstrap->dependModule("server"); // 你很可能需要修改模块名
$client = new \PhalconPlus\RPC\Client\Adapter\Local($di);
// 获取服务地址列表
$remoteUrls = $config->demoServerU
$client = new \PhalconPlus\RPC\Client\Adapter\Remote($remoteUrls->toArray());
$client->SetOpt(\YAR_OPT_CONNECT_TIMEOUT, 5);
RPC调用方式
// 基于Yar的RPC服务
$request = new \Demo\Protos\RequestDemo();
$request->setFoo("hello")
->setBar("world");
$protoUser = new \Demo\Protos\ProtoUser();
$protoUser->setUsername("guweigang")
->setPassword("123456")
->setStatus(new \Demo\Protos\EnumUserStatus(3));
$request->setUser($protoUser);
$response = $this->rpc->callByObject(array(
"service" => "\\Demo\\Server\\Services\\Demo",
"method" => "demo",
=> $request,
echo json_encode($response);
注册logger, 自定义是亮点
//自定义log格式和处理
$di->setShared("logger", function() use ($di, $config){
$logger = new \PhalconPlus\Logger\Adapter\FilePlus($config->application->logFilePath);
// debug类别的日志单独打印在以.de结尾的文件中
$logger->registerExtension(".de", [\Phalcon\Logger::DEBUG]);
// 添加formatter
$formatter = new \PhalconPlus\Logger\Formatter\LinePlus("[%date%][%trace%][%uid%][%type%] %message%");
$formatter->addProcessor("uid", new UidProcessor(18));
$formatter->addProcessor("trace", new TraceProcessor(TraceProcessor::T_CLASS));
$logger->setFormatter($formatter);
[ 23:28:09][/Users/guweigang/github/bullsoft/falcon/demo/app/controllers/IndexController.php:192][2dc6b1bcf7c49330e9][DEBUG] 我是日志1
[ 23:28:09][/Users/guweigang/github/bullsoft/falcon/demo/app/controllers/IndexController.php:193][2dc6b1bcf7c49330e9][DEBUG] 我是日志2
[ 23:28:09][/Users/guweigang/github/bullsoft/falcon/demo/app/controllers/IndexController.php:194][2dc6b1bcf7c49330e9][DEBUG] 但是我们是同一个请求产生的日志
模板设置,在模板中使用PHP函数
// set view with volt
$di->set('view', function() use ($di) {
// 此处省略很多代码 ...
$compiler = $volt->getCompiler();
// 注册PHP函数,在volt模板中可以使用php built-in函数
$compiler->addExtension(new \PhalconPlus\Volt\Extension\PhpFunction());
volt模板代码
{ { substr(hello, 0, -1) } }
{ { json_encode(world, constant("JSON_PRETTY_PRINT")) } }
namespace Demo\P
use \PhalconPlus\Enum\AbstractE
class EnumUserStatus extends AbstractEnum
const __default = self::NORMAL;
const NORMAL = 0;
const INIT = 1;
const NEED_VALID = 2;
const BLOCK = 3;
const DELETED = 4;
枚举类使用
\PhalconPlus\Assert\Assertion::numeric($userStatus);
} catch (\Exception $e) {
echo $e->getMessage();
// 0, 1, 2, 3, 4 才是合法的枚举值
$userStatus = $this->request->getQuery("status");
$a = new \Demo\Protos\EnumUserStatus($userStatus);
echo "Valid user Status is: " . $a;
} catch (\Exception $e) {
echo "Exception: " . $e->getMessage();
namespace Demo\P
use \PhalconPlus\Enum\Exception as EnumE
class EnumExceptionCode extends EnumException
const __default = self::UNKNOWN;
* 请不要使用重复异常码
const UNKNOWN = 10000;
const USER_NOT_EXISTS = 10001;
const AUTH_FAILED = 10002;
const NEED_LOGIN = 10003;
protected static $details = [
self::UNKNOWN => [
"message" => "未知错误",
"level" => EnumLoggerLevel::ERROR,
self::USER_NOT_EXISTS => [
"message" => "用户不存在,请核实后再试",
"level" =>
EnumLoggerLevel::INFO,
public static function exceptionClassPrefix()
return __NAMESPACE__ . "\\Exception\\";
异常枚举使用
// 通过异常码唤醒异常
throw \Demo\Protos\EnumExceptionCode::newException(10001, $this->di->getLogger());
此异常类根据异常枚举类自动生成
namespace Demo\Protos\E
* 此类由代码自动生成,请不要修改
class UserNotExists extends \PhalconPlus\Base\Exception
protected $code = 10001;
protected $message = '用户不存在,请核实后再试';
protected $level = 6;
Copyright & Phalcon+ 2015 - 2016. A member of .预处理查询怎么用原生PHP动态获取和记录MYSQL执行过SQL语句? - ThinkPHP框架
预处理查询怎么用原生PHP动态获取和记录MYSQL执行过SQL语句?
我的项目是原生PHP开发的,没有用到TP框架;
自己拼接SQL语句好取;
可是预处理执行SQL就不知道怎么获取了?
跪请大神指教!!谢谢了!
zeneweishu1988
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。}

我要回帖

更多关于 phalcon db 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信