为什么form.AddField的值不接受字符串

时间:2014-11-25 06:22:48

标签: c# php unity3d

我想将一些数据发送到我的服务器.. 所以我做了这个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,我尝试发送

  

&#39;一个&#39;   但是当我在数据库中这样做时,它不能保存&#39; a&#39;相反,它保存了97,ASCI值..

我不明白这有什么问题,而在我的服务器数据库中,我设置的值是varchar(100)..

请帮助我和thx之前:)

1 个答案:

答案 0 :(得分:0)

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');"