2016-07-19 133 views
0

我想在Unity中將數據發佈到我的數據庫,它似乎沒有工作。我知道這可能是一個非常愚蠢的錯誤,因爲我對這方面的知識確實有限。如何在Unity中訪問數據庫?

的C#腳本我有:

void logIn(string test) { 
 
     WWWForm form = new WWWForm(); 
 
     form.AddField("action","send"); 
 
     form.AddField("var1",test); 
 
     string url = "http://www.prizechief.com/unitycon.php"; 
 
     WWW w = new WWW(url, form); 
 
     
 
    } 
 

 
    void Start() { 
 
     string sample = "Works"; 
 
     logIn(sample); 
 
     
 

 
    }

我的PHP代碼

<?php 
 
\t $con = @mysqli_connect("server","un","pass", "db") or die("Could not connect " . mysqli_connect_error() . "Please try again later."); 
 
\t 
 
\t $var1 = $_GET['var1']; 
 
\t echo $var1; 
 
\t 
 
\t mysqli_Query($con,"INSERT INTO test (var) VALUE ('$var1')"); 
 
?>

此外,關於如何使用GET接收提示信息將不勝感激!

+0

也許包括更多關於爲什麼它不起作用的細節會有幫助。 –

+0

@CharlieFish如果我知道它爲什麼不起作用,我不會發布這個 – Blar321

+1

是的,但是說「我試圖在Unity中將數據發佈到我的數據庫,並且它似乎沒有工作。」沒有幫助。它怎麼不工作?它給你一個錯誤?當您嘗試發佈數據時會發生什麼?請包括它如何不工作。預期的結果和當前的結果等。 –

回答

0

試試這個。這應該做WWW請求,並在您的PHP腳本中設置$_GET['var1'] =到value1。現在當然,你必須在路上改變這個變量。但現在只是爲了測試。如果這不起作用,請讓我知道調試日誌打印出來的內容。

void Start() { 
    string url = "http://www.prizechief.com/unitycon.php?var1=value1"; 
    WWW www = new WWW(url); 
    StartCoroutine(WaitForRequest(www)); 
} 

IEnumerator WaitForRequest(WWW www) 
{ 
    yield return www; 

    // check for errors 
    if (www.error == null) 
    { 
     Debug.Log("WWW Ok!: " + www.data); 
    } else { 
     Debug.Log("WWW Error: "+ www.error); 
    }  
} 

編輯

記住進入編輯>播放器設置>編輯和更改URL到您的域。

+0

WWW錯誤:被拒絕,因爲沒有找到crossdomain.xml策略文件 UnityEngine.Debug:日誌(對象) c__Iterator0:MoveNext ()(在資產/腳本/ login.cs:24) – Blar321

+0

更新:玩了一段時間後,我設法使它工作。我去編輯=>播放器設置=>編輯器,並將網址更改爲我的域名。謝謝:D – Blar321

+0

酷!很高興我能幫上忙。如果您覺得我的代碼有幫助,請記住接受答案,以便有相同問題的其他用戶也可以看到。當然沒有必要,但如果它有幫助,你想只爲其他用戶着想:)我會進入並編輯我的答案,現在包括該部分。現在很高興它的作品! –