2016-02-19 81 views
0

我目前正在编写数据库安装文件,为用户自动安装数据库,以便软件可以运行。不过,我只是想知道:如何使用php安装数据库?

有没有办法通过它推一个SQL文件?

由于一时的,我不得不这样做:

$tbl_users = "CREATE TABLE Users (
       uid INT(255) UNSIGNED AUTO_INCREMENT PRIMARY KEY 
      )"; 

if($db->query($tbl_users) === TRUE) { 
    // do the next creation of a table ... 

为每个表,然后手动添加的行也是如此。

如果有人可以给我一些建议,将不胜感激;我只是想知道如果SQL文件不安全,但如果它可能。

由于这是论坛软件和很多人似乎喜欢免费托管当使用它,因为它是由免费托管服务提供商禁用我不能使用shell_exec

阅读我的评论以获得更好的理解。

+2

可能的复制(HTTP:/ /stackoverflow.com/questions/4027769/running-mysql-sql-files-in-php) – Phiter

+0

免费托管,不能使用:'shell_exec' @PhiterFernandes,我想这是免费的,因为它是一个论坛软件的所有人:我知道人们喜欢使用免费托管论坛软件。 – KDOT

+0

咦?花费两美元更好地托管。 – patricksweeney

回答

1

如果您使用的是共享主机,并且没有phpmyadmin或无法上传超过2MB的文件或其他问题,那么您应该安装MySQL Workbench。

使用托管提供商提供的设置创建到mysql服务器的连接并运行你的sql。

或通过PHP来运行SQL脚本,请执行以下操作:

<?php 
    $db = mysqli_connect("localhost", "root", "my_password", "database"); 
    if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
    } 
    $query = file_get_contents("myfile.sql"); 
    if (mysqli_multi_query($db, $query)) 
    echo "Success"; 
    else 
    echo "Fail"; 
+0

我想通过PHP来做到这一点。我不希望他们手动安装SQL文件,但感谢您的输入。 – KDOT

+0

没问题:) '<?php $ db = mysqli_connect(“localhost”,“root”,“my_password”,“database”); (mysqli_connect_errno()){ printf(“Connect failed:%s \ n”,mysqli_connect_error()); exit(); } $ query = file_get_contents(“myfile.sql”); if(mysqli_multi_query($ db,$ query)) echo“Success”; else 回声“失败”; ?>' – Sohrab

+0

Sohrab,你最近的评论会更适合你的答案。 – TecBrat

0

试试这个:[下运行MySQL \ * SQL文件在PHP]的

<?php 
    system('mysql --user=USER --password=PASSWORD DATABASE< file.sql'); 
?>