重庆荣昌网站建设报价,宁波网站建设58同城,网站建设项目怎么写,wordpress设计博客都澜本节书摘来自异步社区出版社《MySQL排错指南》一书中的第1章#xff0c;第1.4节#xff0c;作者#xff1a;【美】Sveta Smirnova(斯维特 斯米尔诺娃)#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。1.4 获取查询信息正如前一节看到的一样#xff0c;数…本节书摘来自异步社区出版社《MySQL排错指南》一书中的第1章第1.4节作者【美】Sveta Smirnova(斯维特 斯米尔诺娃)更多章节内容可以访问云栖社区“异步社区”公众号查看。1.4 获取查询信息正如前一节看到的一样数据库会返回一些关于每个查询的重要信息有些信息直接展现在MySQL的访问客户端中而有些信息则需要通过如SHOW WARNINGS等命令才能得到。当从应用程序中调用SQL语句的时候获取这些返回信息并确认没有异常情况发生同样重要。所有语言的MySQL API都提供了获取服务器返回信息的接口。本节将讨论这些接口。这里仅涉及C的API因为我必须选择一种语言的API并且大部分其他语言的API都是基于C的API的[2]。受影响的行数我们从之前见过的输出开始每次插入、更新或者删除后都会显示有多少行数据插入、更新或者删除了这个信息代表查询正常执行并且修改了N行数据。要在应用程序中获取相同的信息可以调用如果有改变发生该函数会返回一个正数如果没有改变那么返回0−1代表反生错误。对于UPDATE语句如果客户端设置了CLIENT_FOUND_ROWS那么该函数将会返回满足WHERE条件的行数这个数并不总是和实际更改的行数一致。提示 提示对于Connector/J来说默认不启用受影响的行因为这不是JDBC兼容的特性并且会使其DML语句依赖于匹配的行数而不是受影响的行数的大多数应用程序产生错误。不过对于INSERT...ON DUPLICATE KEY UPDATE类型的语句会返回正确的更新数量。连接字符串属性useAffectedRows告诉Connector/J在连接到服务器的时候是否设置CLIENT_FOUND_ROWS标志。匹配的行数输出中表示该数目的字符串是该输出表明有多少行满足WHERE条件。下面的C函数以字符串格式返回关于最近的查询的补充信息。对于更新操作来说它返回的字符串类似其中每个#依次对应代表匹配的行数、修改的行数和警告数目。可以通过解析该行中的“matched: #”获悉有多少行被查找出来。被修改的行数输出中代表该数目的字符串是该输出表明有多少行实际上修改了。需要注意的是匹配行数M和修改的行数P是可以不同的。例如假设你想要修改的列已经包含你指定的值在这种情况下该列会被认为是匹配的而不是修改的。在应用程序中像之前一样用mysql_info()获取信息不过这次是解析“Changed: #”。警告数目和消息输出中表示这部分信息的字符串是如果服务器在处理请求过程中探查到一些不寻常的情况或者值得报告的情况你将会获得警告。不过查询仍然会执行并且会修改数据。无论如何请确保检查警告信息因为它们会帮助你获悉潜在的问题。在应用程序中有很多不同的方式去获取警告。仍可以使用mysql_info()函数然后解析“Warinings: #”。也可以调用如果有警告可以执行SHOW WARNINGS命令去获取关于究竟发生了什么的文本消息。另一个选择是该函数将返回最近的SQL状态(SQLSTATE)。例如“42000”代表语法错误“00000”代表没有错误和警告。提示 提示SQLSTATE的值由ANSI SQL标准定义用于表明语句的执行状态。执行状态被设置成标准中定义的状态码表明一个请求是成功完成还是返回异常。SQLSTATE以字符串形式返回。要了解MySQL服务器可能返回哪些状态码可以阅读MySQL参数手册中的“服务器错误码和错误消息”一节。错误检查错误也总是很有用。下面的函数返回最近SQL语句的错误值。..tu18-1.tif该函数返回最近一次错误的MySQL错误代码。例如语法错误会生成数字10640意味着没有错误。该函数返回最近一次错误的文本信息。对于语法错误它会返回类似以下的内容。这有利于保存存储于不同日志文件中的信息使你可以在任何时候检查它们。提示 提示MySQL官方文档包含MySQL服务器可能返回的错误列表以及客户端错误列表。**通过perror获取错误字符串**perror工具是MySQL发行包中携带的一款用于解决问题的非常有用的工具。perror能够提供与给定错误代码相关联的MySQL及其所在操作系统的错误信息。可以从MySQL命令行客户端、信息函数或其他错误日志文件中的错误消息中后面括号的部分获取错误代码。下面是一些示例当命令产生错误的时候会在MySQL客户端输出这些错误代码这些错误代码可以通过mysql_error()函数由程序获取。然而当你面对一个错误码不知所措的时候可以使用perror工具。