簡體   English   中英

為什么form.AddField的Value不接受字符串

[英]Why the Value of form.AddField won't accept string

我想發送一些數據到我的服務器..所以我做了這個C#代碼

IEnumerator SaveAllPlayerPrefs(string[] parms)
    {
        WWWForm form = new WWWForm();

        form.AddField("bone" , value);

        WWW webRequest = new WWW(db_url + "SaveAllPlayerPref.php", form);

        yield return webRequest;
    }

而且我有用於接收該代碼的php代碼

<?php

    $sql_connect = mysql_connect("localhost", "root", "") or die ("no DB Connection");

    mysql_select_db("example") or die ("DB not found");

    $bone = $_POST['bone'];

    mysql_query("INSERT INTO save_game (bone) VALUES ($bone);");

    mysql_close($sql_connect);
?>

問題是當我嘗試此代碼時,它可以很好地工作,但是當值仍然為int時,它就可以工作。 當我將值更改為字符串類型時,它無法發送到數據庫,並且我的崩潰是

稍后我嘗試將值更改為char,我嘗試發送

'a',但是當我在數據庫中這樣做時,它不保存'a'而是保存97,即ASCI值。

我不明白這是怎么回事,在服務器的數據庫中,我將值設置為varchar(100)。

請幫助我和thx之前:)

WWWForm.AddField的文檔指出,只能將int用作第二個參數,這樣它才能正確運行,並且char實際上是單個字符和16位數字(常規)值,因此將其強制轉換為int。

AddField(fieldName: string, i: int): void;

或者您可以嘗試使用編碼的第二種方法,以便您可以傳遞string值。

AddField(fieldName: string, value: string, e: Encoding = System.Text.Encoding.UTF8): void;

我不確定PHP部分,但我認為您可能需要在$bone周圍加上引號

"INSERT INTO save_game (bone) VALUES ('$bone');"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM