mysql_info
时间: 2023-07-02 22:15:53 浏览: 163
mysql_info()是MySQL提供的一个函数,可以用于获取最近一条MySQL操作所产生的信息。该函数的语法如下:
```
string mysql_info ( [resource $link_identifier] )
```
其中,$link_identifier是可选参数,表示MySQL连接标识符。如果没有指定该参数,则使用最近一次mysql_connect()或mysql_pconnect()所返回的连接标识符。
该函数返回一个描述最近一条MySQL操作所影响记录数量、插入ID等信息的字符串。该字符串的格式和内容与具体的MySQL操作有关。例如,对于UPDATE操作,该字符串可能会包含以下信息:
```
Rows matched: 10 Changed: 5 Warnings: 0
```
这表示UPDATE操作匹配了10条记录,其中5条记录发生了变化,没有产生警告。
相关问题
if(!function_exists('mysql_pconnect')){ function mysql_pconnect($dbhost, $dbuser, $dbpass){ global $dbport; global $dbname; global $linkid; $linkid = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); return $linkid; } function mysql_select_db($dbname){ global $linkid; return mysqli_select_db($linkid,$dbname); } function mysql_fetch_array($result, $type=''){ if ($type) { return mysqli_fetch_array($result, $type); }else{ return mysqli_fetch_array($result); } } function mysql_fetch_assoc($result){ return mysqli_fetch_assoc($result); } function mysql_fetch_row($result){ return mysqli_fetch_row($result); } function mysql_free_result($result){ return mysqli_free_result($result); } function mysql_query($cxn){ global $linkid; return mysqli_query($linkid,$cxn); } function mysql_insert_id(){ global $linkid; return mysqli_insert_id($linkid); } function mysql_affected_rows(){ global $linkid; return mysqli_affected_rows($linkid); } function mysql_escape_string($data){ global $linkid; return mysqli_real_escape_string($linkid, $data); } function mysql_real_escape_string($data){ global $linkid; return mysqli_real_escape_string($linkid, $data); } function mysql_close(){ global $linkid; return mysqli_close($linkid); } function mysql_get_server_info(){ global $linkid; return mysqli_get_server_info($linkid); } function mysql_num_rows($result){ return mysqli_num_rows($result); } } error_reporting(E_ERROR | E_PARSE); error_reporting(E_ALL ^ E_WARNING); error_reporting(E_ALL & ~E_NOTICE); error_reporting(E_ALL ^ E_DEPRECATED);给代码加上注释
以下是对代码的注释:
```php
if(!function_exists('mysql_pconnect')){
// 自定义 mysql_pconnect 函数
function mysql_pconnect($dbhost, $dbuser, $dbpass){
// 全局变量
global $dbport;
global $dbname;
global $linkid;
// 使用 mysqli_connect 连接数据库
$linkid = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
return $linkid;
}
// 自定义 mysql_select_db 函数
function mysql_select_db($dbname){
// 全局变量
global $linkid;
// 使用 mysqli_select_db 选择数据库
return mysqli_select_db($linkid,$dbname);
}
// 自定义 mysql_fetch_array 函数
function mysql_fetch_array($result, $type=''){
// 如果传入 $type,则使用 mysqli_fetch_array 函数并返回
if ($type) {
return mysqli_fetch_array($result, $type);
}
// 否则使用 mysqli_fetch_array 函数并返回
else{
return mysqli_fetch_array($result);
}
}
// 自定义 mysql_fetch_assoc 函数
function mysql_fetch_assoc($result){
return mysqli_fetch_assoc($result);
}
// 自定义 mysql_fetch_row 函数
function mysql_fetch_row($result){
return mysqli_fetch_row($result);
}
// 自定义 mysql_free_result 函数
function mysql_free_result($result){
return mysqli_free_result($result);
}
// 自定义 mysql_query 函数
function mysql_query($cxn){
// 全局变量
global $linkid;
// 使用 mysqli_query 函数查询数据库
return mysqli_query($linkid,$cxn);
}
// 自定义 mysql_insert_id 函数
function mysql_insert_id(){
// 全局变量
global $linkid;
// 使用 mysqli_insert_id 函数获取最后插入的 ID
return mysqli_insert_id($linkid);
}
// 自定义 mysql_affected_rows 函数
function mysql_affected_rows(){
// 全局变量
global $linkid;
// 使用 mysqli_affected_rows 函数获取受影响的行数
return mysqli_affected_rows($linkid);
}
// 自定义 mysql_escape_string 函数
function mysql_escape_string($data){
// 全局变量
global $linkid;
// 使用 mysqli_real_escape_string 函数转义字符串
return mysqli_real_escape_string($linkid, $data);
}
// 自定义 mysql_real_escape_string 函数
function mysql_real_escape_string($data){
// 全局变量
global $linkid;
// 使用 mysqli_real_escape_string 函数转义字符串
return mysqli_real_escape_string($linkid, $data);
}
// 自定义 mysql_close 函数
function mysql_close(){
// 全局变量
global $linkid;
// 使用 mysqli_close 函数关闭连接
return mysqli_close($linkid);
}
// 自定义 mysql_get_server_info 函数
function mysql_get_server_info(){
// 全局变量
global $linkid;
// 使用 mysqli_get_server_info 函数获取 MySQL 服务器信息
return mysqli_get_server_info($linkid);
}
// 自定义 mysql_num_rows 函数
function mysql_num_rows($result){
// 使用 mysqli_num_rows 函数获取结果集中的行数
return mysqli_num_rows($result);
}
}
// 设置错误报告级别
error_reporting(E_ERROR | E_PARSE); // 不显示警告和通知
error_reporting(E_ALL ^ E_WARNING); // 显示错误和通知,不显示警告
error_reporting(E_ALL & ~E_NOTICE); // 显示错误和警告,不显示通知
error_reporting(E_ALL ^ E_DEPRECATED); // 显示错误和通知,不显示弃用的函数警告
```
注释是用来解释代码的作用和意图,方便其他开发人员理解和维护代码。
解释一下这段python代码:def sycnExecute(batch): querySql = "select mysql_host,mysql_port,mysql_user_name,mysql_password,mysql_data_base,mysql_table_name,clickhouse_table_name,type from DIM.mysql_to_clickhouse_config_dist where batch = '%s' and type = 2 order by mysql_table_name" % batch log.info("query sql:%s", querySql) client = Client(host=host, user=user, port=port, password=password, database=database, send_receive_timeout=send_receive_timeout) try: sync_info_list = client.execute(querySql) thread_list = [] for row in sync_info_list: thread = SyncThread(sync, (row[0], row[1], row[2], row[3], row[4], row[5], row[6])) thread.start() thread_list.append(thread) for t in thread_list: t.join() flag = True for t in thread_list: log.info("thread %s,result:%s", t.name, t.getResult()) if (t.getResult() == False): flag = False if(flag == False): raise RuntimeError("同步失败") finally: client.disconnect()
这段 Python 代码是一个函数定义,函数名为 `sycnExecute`,它接受一个参数 `batch`。
在函数体内,首先构建了一个 SQL 查询语句 `querySql`,该语句根据给定的 `batch` 值从数据库中选择符合条件的记录。然后,使用日志记录了查询语句。
接下来,创建了一个 `Client` 对象,该对象用于连接到 ClickHouse 数据库。在创建 `Client` 对象时,使用了一些变量(`host`、`user`、`port`、`password`、`database` 和 `send_receive_timeout`),这些变量在代码中没有直接给出,可能是在其他地方定义的。
然后,在一个 `try` 块中执行了查询语句,并将结果赋值给 `sync_info_list`。接着,创建了一个空的线程列表 `thread_list`。
接下来的循环遍历了 `sync_info_list` 中的每一行记录,并为每一行创建了一个 `SyncThread` 对象,并将其启动(调用 `start()` 方法)。然后将该线程添加到线程列表中。
在所有线程启动后,通过循环等待所有线程执行完毕(调用 `join()` 方法)。然后,定义了一个变量 `flag`,用于记录线程执行结果是否都成功。
接下来的循环遍历了线程列表中的每个线程,并打印了线程名称和执行结果。如果有任何一个线程的执行结果为 False,则将 `flag` 设置为 False。
最后,检查 `flag` 的值,如果为 False,则触发一个 `RuntimeError` 异常,抛出 "同步失败" 的错误信息。无论是否发生异常,最后都会断开与 ClickHouse 数据库的连接。
总体而言,这段代码的作用是从数据库中查询一些配置信息,然后使用多线程进行同步操作,并在同步过程中检查每个线程的执行结果。如果任何一个线程执行失败,将触发一个异常。
阅读全文