📅  最后修改于: 2020-11-27 06:24:43             🧑  作者: Mango
您希望从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";
}
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 & Description |
---|---|
1 |
SELECT VERSION( ) Server version string |
2 |
SELECT DATABASE( ) Current database name (empty if none) |
3 |
SELECT USER( ) Current username |
4 |
SHOW STATUS Server status indicators |
5 |
SHOW VARIABLES Server configuration variables |