您希望从MySQLi获得三种信息.
有关结果的信息查询 : 这包括受SELECT,UPDATE或DELETE语句影响的记录数.
有关表和数据库的信息 : 这包括有关表和数据库结构的信息.
有关MySQLi服务器的信息 : 这包括数据库服务器的当前状态,版本号等.
在mysqli提示符下获取所有这些信息非常容易,但在使用时PERL或PHP API,我们需要显式调用各种API来获取所有这些信息.以下部分将向您展示如何获取此信息.
在DBI脚本中,受影响的行数由do()或execute()返回,具体取决于执行查询的方式 :
# Method 1 # execute $query using do( ) my $count = $dbh->do ($query); # report 0 rows if an error occurred printf "%d rows were affected\n", (defined ($count) ? $count : 0); # Method 2 # execute query using prepare( ) plus execute( ) my $sth = $dbh->prepare ($query); my $count = $sth->execute ( ); printf "%d rows were affected\n", (defined ($count) ? $count : 0);
在PHP中,调用mysqli_affected_rows()函数以查找查询更改的行数减去;
$result_id = mysqli_query ($query, $conn_id); # report 0 rows if the query failed $count = ($result_id ? mysqli_affected_rows ($conn_id) : 0); print ("$count rows were affected\n");
这很容易列出数据库服务器可用的所有数据库和表.如果您没有足够的权限,您的结果可能为null.
除了我在下面提到的方法之外,您还可以使用SHOW TABLES或SHOW DATABASES查询来获取表或数据库列表在PHP或PERL中.
# Get all the tables available in current database. my @tables = $dbh->tables ( ); foreach $table (@tables ){ print "Table Name $table\n"; }
<?php $servername = "localhost:3306"; $username = "root"; $password = ""; $dbname = "TUTORIALS"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo"Database connected"; $sql="SHOW DATABASES"; if (!($result = mysqli_query($conn,$sql))) { printf("Error: %s\n", mysqli_error($conn)); } while( $row = mysqli_fetch_row( $result ) ){ if (($row[0]!="information_schema") && ($row[0]!="mysql")) { echo $row[0]."\r\n"; } } $conn->close(); ?>
MySQL中有以下命令可以在mysql提示符下或使用任何脚本执行像PHP一样获取有关数据库服务器的各种重要信息.
Sr.No. | Command&描述 |
---|---|
1 | SELECT VERSION() 服务器版本字符串 |
2 | SELECT DATABASE() 当前数据库名称(如果没有则为空) |
3 | SELECT USER() 当前用户名 |
4 | 显示状态 服务器状态指示器 |
5 | 显示变量 服务器配置变量 |