PHP/MySQL查询:未插入行
我有一个很大的SQL文件,我正试图插入到数据库中。它无法通过phpMyAdmin工作,因为它太大了,所以我创建了一个自定义脚本:PHP/MySQL查询:未插入行,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我有一个很大的SQL文件,我正试图插入到数据库中。它无法通过phpMyAdmin工作,因为它太大了,所以我创建了一个自定义脚本: <?php ini_set('max_execution_time', 0); $file = file_get_contents('./mySQLfile.sql'); //var_dump($file); die(); $conn = new mysqli('localhost', 'myUserName', 'myPassword', 'myDat
<?php
ini_set('max_execution_time', 0);
$file = file_get_contents('./mySQLfile.sql');
//var_dump($file); die();
$conn = new mysqli('localhost', 'myUserName', 'myPassword', 'myDatabase');
$q = $file;
if ($result = $conn->query($q))
{
echo '<font color="red">'.$conn->error.'</font>';
echo '<br />';
}
?>
为什么不插入这些值
谢谢。PHP的mysql驱动程序(mysql/mysqli/pdo)不允许在一次调用中使用多个查询作为安全措施。您不能像这样将整个转储提供给单个查询调用
你最好还是做点像这样的事情
exec("mysql -u xxx -p < dump.sql");
exec(“mysql-uxxx-p
相反。sql文件的确切大小是多少?请运行无缓冲查询。因为语句
DELETE
,INSERT
,UPDATE
没有返回值,我在谷歌上搜索过,但不确定这里的语法。你能把它放在“myUsername”、“myPassword”、“myDatabase”的上下文中吗?另外,如果exec
命令不可用,还有其他方法可以这样做吗?谢谢,但我没有命令行访问权限,这是一个共享服务器。我可以在web浏览器中通过PHP脚本使用帮助命令吗?如果是这样,怎么做?没关系,我发现这里的语法仍然不起作用,也没有给我任何错误。我能做些什么来了解它为什么不起作用?我已经添加了ini\u集('error\u reporting',E\u ALL)脚本顶部的code>。mysql可能不在exec正在使用的shell的路径中。尝试一个完整的/usr/bin/mysql
-类型的路径,当然要根据您的系统设置进行调整。
exec("mysql -u xxx -p < dump.sql");