从sql文件执行sql查询

0 php

我想将数据库"shop"中的所有表包含到mydatabase中newshop.我导出了"shop"数据库​​,现在它被命名为shop.sql.有没有办法从该文件执行整个查询,而不是直接导入数据库newshop.

Naw*_*Man 9

我想你需要的可能是:

$ mysql -u $USERNAME -p < "$SQLFILENAME"

其中$ USERNAME是mysql的用户名,root$ SQLFILENAME是sql文件的名称(shop.sql在本例中为' ').

上面的命令会要求您输入密码.如果你不想每次都这样做,你可以使用'--password = $ PASSWORD'但要小心.此密码可能会保存在历史记录中,并且可能在错误的手中(如果您从PHP运行它,则可能不是问题).

或者您可以使用mysqli来运行它.

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = file_get_contents("shop.sql");

/* execute multi query */
if (mysqli_multi_query($link, $query))
     echo "Success";
else 
     echo "Fail";
?>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.