直接将php字符串导入mysql数据库,而不是编写和导入文件

jjhzyzn0  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(340)

我有一个通过命令行导入数据库的数据字符串。现在我将数据保存到一个文件中,导入该文件,然后删除该文件。
有没有办法直接导入?

$data = '...';
file_put_contents('temp.sql', $data);
exec('mysql ... < temp.sql');
unlink('temp.sql');
ftf50wuq

ftf50wuq1#

如果您必须按照编写的方式使用php并使用exec将mysql作为外部程序执行,那么可以使用mysql的命令行-e选项: $data = 'insert 1; insert 2;'; exec("mysql ... -e '$data'"); https://dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html#option_mysql_execute
我想知道您是否最好使用bash或类似的工具?

1qczuiv0

1qczuiv02#

你试过这个吗 mysqli_multi_query() 函数,它允许您用一个字符串执行多个查询?

$link = mysqli_connect("localhost", "my_user", "my_password", "my_database");

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

/* Run queries */
if (mysqli_multi_query($link, $data) === TRUE) {
    echo "It worked";
} else {
    echo "It didn't work";
}

如果字符串由于某种原因太大,可以用分号将其拆分 ; 然后在数组上迭代。将最后一块代码替换为:

$queries = explode(";",$data);
foreach ($queries as $q) {
    mysqli_query($link, $q);
}

相关问题