( PHP5 中会直接返回一个 NULL,PHP7会抛出异常!)...[HY000] [1049] Unknown database 'blog_test1' blog_test1 表并不存在,所以在 new PDO 的时候就已经直接会抛出异常了。...exist" // } 在上面的测试代码中,我们查询了 aabbcc 这个表,但其实数据库中并不存在这个表。...[42S02]: Base table or view not found: 1146 Table 'blog_test.aabbcc' doesn't exist 最后,我们将错误处理机制设置为抛出异常...B8%AD%E7%9A%84%E9%94%99%E8%AF%AF%E4%B8%8E%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86%E6%A8%A1%E5%BC%8F.php 参考文档
# Redirect everything that isn't a real file to index.php try_files $uri $uri/ /index.php...journalctl -xe 文件不存在 "/home/jay/yii-application/log/frontend-access.log" failed (2: No such file or...扩展 sudo apt-get install php7.2-mysql 再次登陆,报错: SQLSTATE[HY000] [1698] Access denied for user 'root'@'...r=test/index phpMyAdmin 查询user表报错 $ sudo vim /usr/share/phpmyadmin/libraries/sql.lib.php 找到 (count...也欢迎园子的大大们指正错误,共同进步。或者直接私信我
php namespace frontend\models; class User extends \common\models\User { } 7、启用并修改配置文件中的 urlManager...但实际使用中,特别是产品环境,一般都会启用 'enablePrettyUrl' => true, //是否启用严格解析,如启用严格解析,要求当前请求应至少匹配1个路由规则,否则认为是无效路由...配置 response,返回格式 'response' => [ 'class' => 'yii\web\Response', //设置 api 返回格式,错误码不在 header...php namespace frontend\extensions; use Yii; use yii\web\Response; use yii\base\Behavior; class ResBeforeSendBehavior...php namespace frontend\modules\v1\controllers; use yii\rest\ActiveController; class GoodsController
类代码 08 连接异常 表 7. 类代码 08:连接异常 SQLSTATE 值 含义08001 应用程序请求器不能建立连接。08002 连接已存在。08003 连接不存在。...2200S XML 注释无效。2200T XML 处理指令无效。2200W XML 值包含未能序列化的数据。22011 发生子字符串错误;例如,SUBSTR 的参数超出范围。...类代码 2E:无效连接名称 SQLSTATE 值 含义2E000 连接名称无效。 类代码 34 无效的游标名称 表 26....428B2 容器的路径名无效。 428B3 指定了无效的 SQLSTATE。 428B7 在 SQL 语句中指定的编号不在有效范围内。 428BO 不能为联合数据源创建方案。...428D7 不允许条件值。 428D8 SQLSTATE 或 SQLCODE 变量的声明或使用无效。 428DB 作为超类型、超表或超视图,该对象无效。
changeme7', 'Linda'] ['roger.martin@example.com', 'changeme7'] ])->execute(); 更新数据 Yii::$app->db-...抛出其他Status Code throw new \yii\web\HttpException(402); // 如果系统没有,可以通过HttpException自己写状态码 throw new \...400: 错误的请求。可能通过用户方面的多种原因引起的,例如在请求体内有无效的JSON 数据,无效的操作参数,等等。 401: 验证失败。...404: 所请求的资源不存在。 405: 不被允许的方法。 请检查 Allow header 允许的HTTP方法。 415: 不支持的媒体类型。 所请求的内容类型或版本号是无效的。...请检查响应体内详细的错误消息。 429: 请求过多。 由于限速请求被拒绝。 500: 内部服务器错误。 这可能是由于内部程序错误引起的。
不过,还是更加推荐指定 PDO 的错误处理方式为抛出异常,就像最上面我们定义的 PDO 对象那样。这样我们就可以通过 try...catch 来处理错误异常了。...占位符包含两种形式,一种是使用 :xxx 这种形式的名称占位符,: 后面的内容可以是自己定义的一个名称。...// $stmt->bindColumn(5, $t); //Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error:...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/PHP%E4%B8%AD%E7%9A%84PDO...8F%8A%E7%BB%91%E5%AE%9A%E6%95%B0%E6%8D%AE.php 参考文档: https://www.php.net/manual/zh/class.pdostatement.php
'blog_test.tran_innodb2' doesn't exist 假设这两个表需要同时更新,但第二条语句报错了。...values ('Joe', 12)"); $pdo->exec("insert into tran_innodb2 (name, age) values ('Joe', 12)"); // 不存在的表...$e->getMessage(), PHP_EOL; // Failed: SQLSTATE[42S02]: Base table or view not found: 1146 Table '...在这里我们需要注意的是,PDO 对象最好指定错误模式为抛出异常,如果不指定错误模式的话,事务中出现的错误也不会直接报错,而是返回错误码,我们需要通过错误码来确定是否提交或回滚。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202008/source/PHP%E4%B8%AD%E7%9A%84PDO
HY000 (ER_DB_DROP_RMDIR) 消息:撤销数据库时出错(can't rmdir '%s', errno: %d) · 错误:1011 SQLSTATE: HY000 (ER_CANT_DELETE_FILE...· 错误:1059 SQLSTATE: 42000 (ER_TOO_LONG_IDENT) 消息:ID名称'%s'过长。...· 错误:1061 SQLSTATE: 42000 (ER_DUP_KEYNAME) 消息:重复键名称'%s'。...· 错误:1282 SQLSTATE: HY000 (ER_WARN_QC_RESIZE) 消息:查询高速缓冲设置大小%lu时失败,新的查询高速缓冲的大小是%lu。...· 错误:1489 SQLSTATE: HY000 (ER_SAME_NAME_PARTITION) 消息:在表中,所有分区必须有唯一的名称。
/vendor/autoload.php'; //引用 yii.php require __DIR__ . '/../...../vendor/yiisoft/yii2/Yii.php'; //引用 bootstrap.php 定义一些别名等 require __DIR__ . '/../.....* 2、如果 Yii::$classMap 中不存在,将命名空间转为实际路径调用 getAlias 生成类文件物理地址 */ spl_autoload_register(['Yii', 'autoload...\web\ErrorHandler::register,初始化错误异常显示和抛出 */ $this->registerErrorHandler($config); /** * 在多层继承中...::t('yii', 'Page not found.'), $e->getCode(), $e); } } 七、yii\base\Module::runAction 代码 public function
号占位符来实现查询,? 号占位符在绑定的时候是以下标形式进行绑定的。 // 使用 ?...'blog_test.tran_innodb2' doesn't exist 假设这两个表需要同时更新,但第二条语句报错了。...values ('Joe', 12)"); $pdo->exec("insert into tran_innodb2 (name, age) values ('Joe', 12)"); // 不存在的表...$e->getMessage(), PHP_EOL; // Failed: SQLSTATE[42S02]: Base table or view not found: 1146 Table '...在这里我们需要注意的是,PDO 对象最好指定错误模式为抛出异常,如果不指定错误模式的话,事务中出现的错误也不会直接报错,而是返回错误码,我们需要通过错误码来确定是否提交或回滚。
ctfshow=O%3A18%3A"ctfshow_i_love_36D"%3A1%3A%7Bs%3A5%3A"isVip"%3Bb%3A1%3B%7D 简单PHP反序列化 web255-简单序列化字符串构造...它必须以一个代表对象序列化形式的 键/值 成对的关联数组形式来返回,如果没有返回数组,将会抛出一个 TypeError 错误 注意: 如果类中同时定义了 __serialize() 和 __sleep(...O:7:"message":4:{ s:4:"from";s:1:"f";s:3:"msg";s:1:"m";s:2:"to";s:1:"t";s:5:"token";s:4:"user";}...":0:{ } PHP框架漏洞 web267-270yii反序列化漏洞 因为页面加载时加载了yii.js文件,可以作为判断yii框架的依据 右上角点击登录,弱口令admin/admin 在about.php...code,don't need to input php tags
>beginTransaction(); // 第三,执行SQL,如果错误就抛出异常,在异常处理中回滚。...// 使用CDbDataReader对象的bindColumn()方法将结果集中的列绑定到PHP变量。...// 因此,读取一行记录,列值将自动填充到对应的PHP对象中 // 比如这样: $connection = Yii::app()->db; $sql = "SELECT username, email...// 如何让一个AR关联另一个AR // 4中关系类型 self::BELONGS_TO self::HAS_MANY self::HAS_ONE self::MANY_MANY 关系名称(关系类型...')->findAll(); // SQL => 'SELECT * FROM tbl_post t INNER JOIN tbl_user u ON t.author = u.id INNER JOIN
和MySQL_error_code都可以表示MySQL错误 sqlstate_value为长度5的字符串错误代码 MySQL_error_code为数值类型错误代码,例如:ERROR1142(42000...如果DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @X2=1;,这一行不存在 第二个INSERT因PRIMARY KEY约束而失败之后,MySQL可能已经采取...参数表示查询存储函数; LIKE ' pattern '参数用来匹配存储过程或函数的名称。...下面查询名为name_from_t3的函数的状态。...; sp_name参数表示存储过程或函数的名称 下面查询名为name_from_t3的函数的定义。
PHP7 数据结构和函数的强大功能 四、使用异步 PHP 展望未来 五、测量和优化数据库性能 六、高效查询现代 SQL 数据库 七、JavaScript 和危险驱动开发 八、函数式 JavaScript...九、提高 Web 服务器的性能 十、超越性能 精通 PHP7 零、前言 一、全新的 PHP 二、接受标准 三、错误处理和日志记录 四、魔术方法背后的魔法 五、CLI 领域 六、突出的面向对象特性 七...二、学习 PHP8 的新增功能 三、利用错误处理增强功能 四、直接调用 C 语言 第二部分:PHP 8 技巧 五、发现潜在的 OOP 向后兼容性中断 六、理解 PHP8 的功能差异 七、使用 PHP8...设计模式 零、序言 一、为什么“优秀的 PHP 开发人员”不是一个矛盾修饰法 二、反模式 三、创建设计模式 四、结构设计模式 五、行为设计模式 六、架构模式 七、重构 八、如何编写更好的代码 PHP7...集成 零、序言 一、安装和集成 Solr 和 PHP 二、从 Solr 插入、更新和删除文档 三、选择查询 Solr 和查询模式(Demax/eDiscoveryMax) 四、高级查询——过滤查询和立面处理
mysql_error_code都可以表示mysql错误 sqlstate_value为长度5的字符串错误代码 mysql_error_code为数值类型错误代码,例如:ERROR1142(42000)...如果DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @X2=1;,这一行不存在 第二个INSERT因PRIMARY KEY约束而失败之后,MYSQL可能已经采取...参数表示查询存储函数; LIKE ' pattern '参数用来匹配存储过程或函数的名称。...下面查询名为name_from_t3的函数的状态。...sp_name参数表示存储过程或函数的名称 下面查询名为name_from_t3的函数的定义。
,MySQL会自动生成一个类似:{table_name}_check_{seq_num}的约束名称,约束名称是大小写敏感的,且最长可以到64个字符 expr设定了一个返回值为boolean类型的约束条件...所以,CHECK约束的名称在SCHEMA内必须唯一,也就是说不允许有两张表使用同一个CHECK约束名称。...(例外:一个临时表可能使用与非临时表一样的约束名称) CHECK的条件表达式必须遵守以下规则,如果包含不允许的结构,将会触发错误: 非生成列和生成列允许被添加到表达式,但包含AUTO_INCREMENT...2.建议使用CHECK约束的场景 复杂业务场景下的约束,从架构角度看,允许有不同的实现方式: 放在数据库表中,通过约束实现,但不支持子查询 放在数据库中,通过触发器(TRIGGER)实现 放在应用程序的逻辑中...分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。
应该庆幸没选择其他框架,什么 CI、YII、Laravel 之类的,Laravel 了解过一些,但是没深入过,还是 TP 系列使用的顺手一些。...ThinkPHP5 系列,十二载初心不改,值得信赖的 PHP 框架,十二周年献礼版本! ThinkPHP5.1 在 5.0 的基础上对底层架构做了进一步的改进,引入新特性,并提升版本要求。...; } } 3.2 版本控制器命名 IndexController.class.php 5.0 版本控制器命名 Index.php 在控制器中正确的输出模板 5.0 在控制器中输出模板,使用方法如下...,默认情况下会对任何级别的错误抛出异常,并且重新设计了异常页面,展示了详尽的错误信息,便于调试 系统常量的废弃 5.0 版本相对于之前版本对系统变化进行了大量的废弃,用户如果有相关需求可以自行定义 下面是一些废除的常量...APP_DEBUG、MODULE_PATH等 ---- 助手函数 5.0助手函数和3.2版本的单字母函数对比如下: 3.2 版本 5.0 版本 C config E exception G debug L lang T
52 * @throws \RuntimeException 产生错误时抛出。...132 * @throws \RuntimeException 如果在读取时发生错误则抛出异常。...221 * @throws \InvalidArgumentException 使用无效的路径时抛出。...235 * @return self 具有指定查询字符串的实例。 236 * @throws \InvalidArgumentException 使用无效的查询字符串时抛出。...49 * @throws \RuntimeException 发生任何错误,都抛出此异常。 50 * @throws \RuntimeException 多次运行,也抛出此异常。
然后就有了整合用户的需要,康盛提供了Ucenter架构,方便对不同的应用程序进行单点登录整合。...; // UCenter 数据库密码 define('UC_DBNAME', '027xfbbs'); // UCenter 数据库名称... 7.进行到这里,我们已经实现了整合ucenter的登录和注册了,这样ucenter中有的用户,可以登录到yii应用,yii应用也可以注册用户到ucenter了。...但是这还没有完成,我们需要的是在discuz中用户登录时,也同步登录yii应用,退出亦然,那么我们需要实现 Yii应用的 api/uc.php 这个接口程序。.../protected/yii-1.1.6/framework/yii.php'; $config=dirname(__FILE__).'/..
在进行数据库操作时,经常必须在PHP程序和数据库服务器之间来回传输大量数据的情况:PHP 程序执行一条 select 命令,对查询结果进行某种处理,根据查询结果执行一条 update 命令,返回 last_insert_id...:参数表示条件的类型;sqlstate_value 参数和 mysql_error_code 参数都可以表示 MySQL 的错误。...sqlstate_value:表示长度为 5 的字符串类型错误代码,mysql_error_code:表示数值类型错误代码。...参数指明错误类型,该参数有 6 个取值:(1)sqlstate_value:包含 5 个字符的字符串错误值;(2)condition_name:表示 declare 定义的错误条件名称;(3)sqlwarning...或 not found 捕获的 sqlstate_value 值;(6)mysql_error_code:匹配数值类型错误代码。
领取专属 10元无门槛券
手把手带您无忧上云