In PHP, sometimes we need to replace the table prefixes in the database, but we don’t have to worry about modifying the prefixes one by one. Below, I wrote a PHP program for mysqli to replace database table prefixes in batches. I hope these methods will be helpful to you.
The code is as follows
代码如下 |
复制代码 |
header ( 'http-equiv="Content-Type" content="text/html; charset=utf-8"' );
$DB_host = "localhost"; //数据库主机
$DB_user = "root"; //数据库用户
$DB_psw = "root3306"; //数据库密码
$DB_datebase = "gk_yue39_com"; //数据库名
$DB_charset = "utf8"; //数据库字符集
$dbprefix="yue392_com_";
$new_dbprefix="yue39_com_";
$db = new mysqli ( $DB_host, $DB_user, $DB_psw ); //实例化对象
//检查连接
if (mysqli_connect_errno ()) {
printf ( "Connect failed: %sn", mysqli_connect_error () );
exit ();
}
$db->select_db ( $DB_datebase ); //选择操作数据库
$db->set_charset ( $DB_charset ); //设置数据库字符集
//执行一个查询
$sql = 'show tables';
$result = $db->query ( $sql );
echo $result->num_rows . ' 行结果 ' . $result->field_count . ' 列内容 ';
//$result->data_seek('5');//从结果集中第5条开始取结果
echo ' ';
//循环输出字段名
//$result->field_seek(2);//从字段集中第2条开始取结果
while ( true == ($field = $result->fetch_field ()) ) {
echo ' ' . $result->current_field . '_' . $field->name . '(' . $field->length . ') | ';
}
//循环输出查询结果
while ( true == ($row = $result->fetch_assoc ()) ) {
echo ' ';
foreach ( $row as $col ) {
$sql="rename table `".$col."` to `".str_replace ( $dbprefix, $new_dbprefix, $col)."`";
if($db->query ( $sql )){
echo '' . $sql. ' | success | ';
}else{
echo '' . $sql. ' | failed | ';
}
}
echo ' ';
}
echo ' ';
$result->free ();//释放结果集
$db->close (); //关闭连接
?>
|
|
Copy code |
|
header ( 'http-equiv="Content-Type" content="text/html; charset=utf-8"' );
$DB_host = "localhost"; //Database host
$DB_user = "root"; //Database user
$DB_psw = "root3306"; //Database password
$DB_datebase = "gk_yue39_com"; //Database name
$DB_charset = "utf8"; //Database character set
$dbprefix="yue392_com_";
$new_dbprefix="yue39_com_";
$db = new mysqli ( $DB_host, $DB_user, $DB_psw ); // Instantiate object
//Check connection
if (mysqli_connect_errno ()) {
printf ( "Connect failed: %sn", mysqli_connect_error () );
exit ();
}
$db->select_db ( $DB_datebase ); //Select the operation database
$db->set_charset ( $DB_charset ); //Set database character set
//Execute a query
$sql = 'show tables';
$result = $db->query ( $sql );
echo $result->num_rows . ' Row results ' . $result->field_count . ' Column content
';
//$result->data_seek('5');//Get results starting from the 5th item in the result set
echo '';
//Loop output field names
//$result->field_seek(2);//Get results starting from the 2nd item in the field set
while ( true == ($field = $result->fetch_field ()) ) {
echo '' . $result->current_field . '_' . $field->name . '(' . $field->length . ') | ';
}
//Loop to output query results
while ( true == ($row = $result->fetch_assoc ()) ) {
echo '';
foreach ( $row as $col ) {
$sql="rename table `".$col."` to `".str_replace ( $dbprefix, $new_dbprefix, $col)."`";
If($db->query ( $sql )){
echo '' . $sql. ' | success | ';
}else{
echo '' . $sql. ' | failed | ';
}
}
echo '
';
}echo '
';
$result->free ();//Release the result set
$db->close (); //Close the connection
?>
http://www.bkjia.com/PHPjc/632925.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/632925.htmlTechArticleIn php, sometimes we have to replace the table prefix in the database, but we don’t have to go through the trouble of modifying the prefix one by one, as follows I wrote a MySQL PHP program to replace database table prefixes in batches. I hope...
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn