1

下面的脚本用于更新 100 个数据库的模式。

我正在调用 mysql_connect,mysql_select_db 是否会导致建立另一个连接,或者我可以吗?(我运行这个脚本来更新 100 个左右数据库的架构)

$conn = mysql_connect("localhost", "root", "PASSWORD");
$show_db_query = mysql_query('SHOW databases');
$databases = array();
while ($row = mysql_fetch_assoc($show_db_query)) 
{ 
    if (!in_array($row['Database'], $exclude_dbs))
    {
        $databases[] = $row['Database'];
    }
}

foreach($databases as $database)
{
    mysql_select_db($database, $conn);
    echo "Running queries on $database\n***********************************\n";
    foreach($sql_queries as $query)
    {
        if (!empty($query))
        {
            echo "$query;";
            if (!mysql_query($query))
            {
                echo "\n\nERROR: ".mysql_error()."\n\n";
            }
        }
    }
    echo "\n\n";
}
4

1 回答 1

1

只要mysql_select_db找到最后一个连接或与调用语句一起提供连接标识符,它就不会创建新连接。

由于您正在传递连接标识符,因此它不会创建与 mysql 的新连接。在这种多连接的情况下,您可以安全使用,但请注意mysql不再维护扩展,您可以尝试mysqliPDO.

于 2012-11-11T14:24:21.760 回答