在代码中,我们使用这一条 SQL 语句,通过替换不同的占位符内容,实现了两次查询。 prepare() 方法的第二个参数是为返回的 PDOStatement 对象设置的属性。...[42S02]: Base table or view not found: 1146 Table '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 对象最好指定错误模式为抛出异常,如果不指定错误模式的话,事务中出现的错误也不会直接报错,而是返回错误码,我们需要通过错误码来确定是否提交或回滚。
SELECT语句从employee表查询d_id值等于emp_id的记录,并用COUNT(*)计算d_id值相同的记录的条数,最后将计算结果存入count_num中。...SELECT语句从employee表查询num值等于emp_id的记录,并将该记录的name字段的值返回。...;var_name参数是变量的名称;table_name参数指表的名称;condition参数指查询条件。...【示例14-5】 下面从employee表中查询id为2的记录,将该记录的d_id值赋给变量my_sql。...例如ERROR 1146 (42S02)中,sqlstate_value值是42S02,mysql_error_code值是1146。
SELECT语句从employee表查询num值等于emp_id的记录,并将该记录的name字段的值返回。...;var_name参数是变量的名称;table_name参数指表的名称;condition参数指查询条件。...【示例5】 下面从employee表中查询id为2的记录,将该记录的d_id值赋给变量my_sql。...例如ERROR 1146 (42S02)中,sqlstate_value值是42S02,mysql_error_code值是1146。...【示例6】 下面定义"ERROR 1146 (42S02)"这个错误,名称为can_not_find。
[HY000] [1049] Unknown database 'blog_test1' blog_test1 表并不存在,所以在 new PDO 的时候就已经直接会抛出异常了。...) // [2]=> // string(38) "Table 'blog_test.aabbcc' doesn't exist" // } 在上面的测试代码中,我们查询了 aabbcc 这个表...,但其实数据库中并不存在这个表。...'); // Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table...[42S02]: Base table or view not found: 1146 Table 'blog_test.aabbcc' doesn't exist 总结 PDO 已经是现在的主流数据库连接扩展
数据库对象可以包括表、默认约束、规则、视图、触发器以及存储过程等。不同数据库对象,其执行语句(如 CREATE 和 DROP )的语法形式也不同。...(1) INSERT 语句:用于向已经存在的表或视图中插入新的数据。(2) SELECT 语句:用于查询表或视图中的数据。(3) UPDATE 语句:用于更新表或视图中的数据。...(4) DELETE 语句:用于删除表或视图中的数据。3.数据控制语言数据控制语言( Data Control Language , DCL )用于安全管理,确定哪些用户可以查或修改数据库中的数据。...在进行数据库操作时,经常必须在PHP程序和数据库服务器之间来回传输大量数据的情况:PHP 程序执行一条 select 命令,对查询结果进行某种处理,根据查询结果执行一条 update 命令,返回 last_insert_id...例如 ERROR 1146(42S02) 中,下面定义“error 1089 (HU123)”这个错误,名称为 can_not_find。
sp_statement指遇到错误的时候,需要执行的存储过程或存储函数。...DECLARE CONTINUE HANDLER FOR SQLSATTE '42S02' SET @info = 'NO_SUCH_TABLE'; -- 忽略错误值为42S02的SQL异常 DECLARE...执行出现异常,那么就退出,只有上面的SQL生效。...最后,数据库表中的数据也是 如果都是正确的SQL,会是什么情况呢?...执行出现异常,那么就退出,只有上面的SQL生效。
SQLSTATE 类代码 类代码 含义 要获得子代码,参阅…00 完全成功完成 表 301 警告 表 402 无数据 表 507 动态 SQL 错误 表 608 连接异常 表 709 触发操作异常 表...01667 可能不能使用视图来优化查询的处理。01669 由于远程目录与本地目录之间的模式不一致,因此,未彻底更新指定昵称的统计信息。01670 对新表来说,不存在缺省主表空间。...类代码 02:无数据 SQLSTATE 值 含义02000 发生下述异常之一:SELECT INTO 语句或 INSERT 语句的子查询的结果为空表。...类代码 08 连接异常 表 7. 类代码 08:连接异常 SQLSTATE 值 含义08001 应用程序请求器不能建立连接。08002 连接已存在。08003 连接不存在。...类代码 26 无效 SQL 语句标识 表 21. 类代码 26:无效 SQL 语句标识 SQLSTATE 值 含义26501 标识的语句不存在。 类代码 27 触发的数据更改违例 表 22.
MySQL MySQL操作之数据查询语言:(DQL)(四-1)(单表操作) 5 MySQL MySQL操作之数据查询语言:(DQL)(四-2)(多表查询) 6 MySQL MySQL操作之数据控制语言:...table_expr:表示查询条件表达式,包括表名称和WHERE子句。...案例: //方法一:捕获sqlstate_value DECLARE CONTINUE HANDLER FOR SQLSTATE `42s02` SET @info=`NO_SUCH_TABLE`; /...statement_list:表示SQL语句列表,可以包括一个或多个语句。...CONTAINS SQL:表示子程序包含SQL语句,但不包含读或写数据的语句。 NO SQL:表示子程序中不包含SQL语句。 READS SQL DATA:表示子程序中包含读数据的语句。
问题描述: 一开发同事在linux下调一个程序老是报错说找不到表,但是登陆mysql,show tables查看明明是已经创建了这张表的!!...(42S02): Table 'haun_db.opHistory' doesn't exist mysql> desc opHistory_queue; ERROR 1146 (42S02): Table...'haun_db.opHistory_queue' doesn't exist mysql> desc opHistory_queue_result_log; ERROR 1146 (42S02):...也就是说,mysql设置为不分区大小写后,创建库或表时,不管创建时使用大写字母,创建成功后,都是强制以小写保存!...后来运维同事又将mysql改成不分区大小写设置了,此时mysql都是强制以小写保存的表,所以开发后面再次在程序里引用这张表的时候,就会报错说不存在!
· 错误:1008 SQLSTATE: HY000 (ER_DB_DROP_EXISTS) 消息:无法撤销数据库'%s',数据库不存在。...) 消息:对于'%s',视图'%s'不存在。...· 错误:1146 SQLSTATE: 42S02 (ER_NO_SUCH_TABLE) 消息:表'%s.%s'不存在。...· 错误:1244 SQLSTATE: HY000 (ER_CORRUPT_HELP_DB) 消息:帮助数据库崩溃或不存在。...· 错误:1356 SQLSTATE: HY000 (ER_VIEW_INVALID) 消息:视图'%s.%s'引用了无效的表、列、或函数,或视图的定义程序/调用程序缺少使用它们的权限。
PDO::errorCode PDO::errorCode — 获取跟数据库句柄上一次操作相关的 SQLSTATE(PHP 5 = 5.1.0, PECL pdo = 0.1.0) 说明 语法 mixed...PDO::errorCode ( void ) 返回值 返回一个 SQLSTATE,一个由5个字母或数字组成的在 ANSI SQL 标准中定义的标识符。...简要地说,一个 SQLSTATE 由前面两个字符的类值和后面三个字符的子类值组成。 如果数据库句柄没有进行操作,则返回 NULL 。...实例 取得一个 SQLSTATE 码 /* 引发一个错误 -- BONES 数据表不存在 */ $dbh- exec("INSERT INTO bones(skull) VALUES ('lucy')"...以上例程会输出: PDO::errorCode(): 42S02 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。
:无效的主机名 1043:无效连接 1044:当前用户没有访问数据库的权限 1045:不能连接数据库,用户名或密码错误 1048:字段不能为空 1049:数据库不存在 1050:数据表已存在...1051:数据表不存在 1054:字段不存在 1065:无效的SQL语句,SQL语句为空 1081:不能建立Socket连接 1114:数据表已满,不能容纳任何记录 1116:打开的数据表太多...1129:数据库出现异常,请重启数据库 1130:连接数据库失败,没有连接数据库的权限 1133:数据库用户不存在 1141:当前用户无权访问数据库 1142:当前用户无权访问数据表 1143...:当前用户无权访问数据表中的字段 1146:数据表不存在 1147:未定义用户对数据表的访问权限 1149:SQL语句语法错误 1158:网络错误,出现读错误,请检查网络连接状况 1159:网络错误...错误:1244 SQLSTATE: HY000 (ER_CORRUPT_HELP_DB) 消息:帮助数据库崩溃或不存在。
不过,还是更加推荐指定 PDO 的错误处理方式为抛出异常,就像最上面我们定义的 PDO 对象那样。这样我们就可以通过 try...catch 来处理错误异常了。...而且并不是所有数据库连接驱动都支持这个方法。...,笔者没有测试过其它数据库,大家可以自行测试一下。...绑定字段 接下来就是重点内容了,在预处理语句中,我们可以使用占位符来绑定变量,从而达到安全处理查询语句的作用。通过占位符,我们就不用去自己拼装处理带单引号的字段内容了,从而避免了 SQL 注入的发生。...我们可以将查询结果集中指定的列绑定到一个特定的变量中,这样就可以在 fetch() 或 fetchAll() 遍历结果集时通过变量来得到列的值。
【视图建立在已有表的基础上,视图依赖的表就是 基表】 对视图进行CRUD操作,也就是对数据库中的对应的表进行操作。...因为数据只有一份,试图就是他的一种显示形式 试图本省的删除,不会导致对基表中数据的删除。 视图不仅可以创建在一个表或者多个基本表上, 还可以创建在一个或者多个已经定义好的视图上。...,discrib FROM student; 删除视图: DROP VIEW 视图名; 更新视图: 更新视图 就是指通过视图来插入、删除和修改数据 由于视图实际是不存在的,所以对试图的操作,最终就会转换为对基表的操作...VIEW 视图名称 AS 查询语句 视图更新失败的原因 视图由两个以上的基本表导出,不能更新 视图中的字段来自于函数、表达式、常量等 或者说字段本身不存在的情况,就会更新失败 若视图中含有GROUP...{BEFORE | AFTER}:指定触发器在相应的数据库操作之前或之后执行。 {INSERT | UPDATE | DELETE}:指定触发器要响应的事件类型。
使用视图和使用表的方式是一样的。 视图和表同一级别,也属于数据库。...知识点-视图的CRUD 1.高山 掌握视图的CRUD操作 2.演绎 创建视图 修改视图 查看视图 对视图数据进行操作 解决视图数据操作影响基表的问题 删除视图 3.攀登 3.1 创建视图 视图可以从各式各样的查询语句中创建...,视图可以引用基表或者其它视图进行创建。...注意: 视图和表共享数据库中相同的名称空间,视图名不能和表名相同。 注意:视图创建语句中的select语句不能将子查询作为表来使用。...3.5 解决视图数据操作影响基表的问题 对视图数据的操作影响了基表,如何来解决这个问题呢? 我们可以在创建视图的时候指定检查方式,从而禁止修改基表。
join 查询时,数据库1仅能在分片后的数据中进行查询,数据库2因为没有找到 order_details 表而返回空,那么整个查询结果将是实际结果的一个子集。...1146 (42S02): Table 'orders.order_details' doesn't exist因为在数据库2中并不存在 order_details 表。...因此,需要先在数据库2中创建 order_details 表。3.4 在mycat中重新查询进入到mycat数据端口,重新执行1中的查询。所有记录都能被查询出来。...3.5 插入数据向 order_details 表中插入几条记录insert into order_details(detail, order_id) values("details001", 1);insert...find (root) parent sharding node for sql3.6 数据查询分别进入各数据库分片进行查询,可以发现子表中,与父表关联的数据,被存储于同一个数据库分片中。
如果错误是由于对语句对象的调用而产生的,那么可以调用那个对象的PDOStatement::errorCode()或 PDOStatement::errorInfo()方法。...如果错误是由于调用数据库对象而产生的,那么可以在数据库对象上调用上述两个方法。 PDO::ERRMODE_WARNING 除设置错误码之外,PDO还将发出一条传统的E_WARNING信息。...异常模式另一个非常有用的是,相比传统 PHP风格的警告,可以更清晰地构建自己的错误处理,而且比起静默模式和显式地检查每种数据库调用的返回值,异常模式需要的代码/嵌套更少。...$e- getMessage(); exit; } // 这里将导致 PDO 抛出一个 E_WARNING 级别的错误,而不是 一个异常 (当数据表不存在时) $dbh- query("SELECT...以上例程会输出: Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘test.wrongtable
1.初识视图 1.视图的概念和作用 什么是视图:是从一个或多个表中导出来的表,它是一种虚拟存在的表,表的结构和数据都依赖于基本表。 作用: 简化查询语句:简化用户的查询操作,使查询更加快捷。...TEMPTABLE:先将select_statement的查询结果存入临时表,然后用 临时表进行查询。 DEFINER:可选,表示定义视图的用户,与安全控制有关,默认为当前用户。...(默认与SELECT语句查询的列相同) AS:表示视图要执行的操作。 select_statement:一个完整的查询语句,表示从某些表或视图中查出某些满足条件的记录,将这些记录导入视图中。...SELECT * FROM view_goods; ERROR 1146 (42S02) : Table 'shop. view_ goods' doesn't exist 3.视图数据操作 1.添加数据...使用INSERT语句通过视图向基本表添加数据 #创建视图 mysql> CREATE VIEW view_ category AS -> SELECT id, name FROM sh_goods_category
,其他的信息为NULL说明这是一个虚表,如果是基表那么会基表的信息,这是基表和视图的区别 SHOW CREATE VIEW语句查看视图详细信息 SHOW CREATE VIEW stu_class View...VIEWS表存储了关于数据库中的视图的信息 通过对VIEWS表的查询可以查看数据库中所有视图的详细信息 SELECT * FROM `information_schema`....stu_class 修改视图 修改视图是指修改数据库中存在的视图,当基本表的某些字段发生变化时,可以通过修改视图来保持与基本表的一致性。...通过视图更新的时候都是转到基表进行更新,如果对视图增加或者删除记录,实际上是对基表增加或删除记录 我们先修改一下视图定义 ALTER VIEW stu_class AS SELECT stuno,stuname...FROM student; 查询视图数据 UPDATE UPDATE stu_class SET stuname='xiaofang' WHERE stuno=2; 查询视图数据 更新成功 INSERT
领取专属 10元无门槛券
手把手带您无忧上云