2016-02-19 38 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'); 
?>