我想向我的服务器发送一些数据。所以我制作了这个 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 时。当我将值更改为字符串类型时,它无法发送到数据库,并且我的 Unity 崩溃了,
稍后我尝试将值更改为字符,我尝试发送
"一" 但是当我在数据库中这样做时,它不会保存"a",而是保存 97,ASCI 值。
我不明白这有什么问题,在服务器的数据库中,我设置的值是 varchar(100)。
请在:)之前帮助我和谢谢
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');"