将带有空格的Unity3d字符串存储到MYSQL中的VARCHAR字段中

我正在使用Unity3d MySQL Db。 我通过 $ _ GET </ code> PHP方法传递值,但是当我将它们存储到指定的表中时,我遇到了带空白字符串的问题。</ p>

让我说我 有一个InputField获取我需要的字符串。 然后,我通过 $ _ GET </ code>方法传递字符串,如下所示:</ p>

  public InputField myInput; 
public string a;

void StoreData ()
{
a = myInput.text;
StartCoroutine(store(a));
}

IEnumerator store(string str)
{
WWW connection = new WWW(“http:// localhost / route / store_company.php?name =“+ str);
yield return(connection);
}
</ code> </ pre>

因此,连接到DB后 ,在php文件中我有:</ p>

  $ name = $ _GET ['name']; 
$ query =“INSERT INTO company(id,name)VALUES(NULL ,'$ name')“;
$ get_query = mysqli_query($ connection,$ query);
echo'101';
</ code> </ pre>

如果我输入 InputField中的“Example”</ em>,名为name的VARCHAR列将具有“Example”。 但是如果我输入“这是一个例子”,那么</ em> VARCHAR列只会存储第一个单词(“This”)而忽略句子的其余部分。</ p>

I 已经将VARCHAR坐到了70(长度)。 使用MySQL很新。 ¿如何捕获整个句子以及为什么在传递字符串变量时不起作用?</ p>
</ div>

展开原文

原文

I'm working on something with Unity3d MySQL Db. I am passing values through $_GET PHP method but I'm having trouble with strings with white spaces when I store them into the assigned tables.

Let's say I have an InputField which gets the string I need. Then, I pass the string through the $_GET method, like this:

public InputField myInput;
public string a;

void StoreData()
{
     a = myInput.text;
     StartCoroutine(store(a));
}

IEnumerator store(string str)
{
     WWW connection = new WWW("http://localhost/route/store_company.php?name=" + str);
     yield return(connection);
}

So, after connecting to the DB, in the php file I have:

$name = $_GET['name'];
$query = "INSERT INTO company(id, name) VALUES (NULL, '$name')";
$get_query = mysqli_query($connection, $query);
echo '101';

If I type "Example" in the InputField, the VARCHAR column called name will have "Example". But if I type "This is an example", the VARCHAR column just stores the first word ("This") missing the rest of the sentence.

I've sat the VARCHAR to 70 (Length). Pretty new using MySQL. ¿How I capture the whole sentence and why don't work if I am passing a string variable?

dsf12313
dsf12313 这解决了这个问题。Imma检查如何覆盖编码。
3 年多之前 回复
douji8347
douji8347 我是怎么做到的或在哪里可以学到的?此外,我尝试了Landern所说的,它在某些领域有效,而在其他领域则无效。
3 年多之前 回复
douran7929
douran7929 然后,您必须修改URL以具有%20空格字符。
3 年多之前 回复
duanpang2751
duanpang2751 列和表的名称是西班牙语。我忘记了URL中的空格。但我需要以某种方式传递整个字符串。
3 年多之前 回复
duai3681
duai3681 用urlencoded字符串替换空格,str=WWW.EscapeURL(str);默认为UTF8编码,可以使用第二个参数覆盖。docs.unity3d.com/ScriptReference/WWW.EscapeURL.html
3 年多之前 回复
duanqian9503
duanqian9503 您知道URL查询字符串中不允许使用空格,对吧?
3 年多之前 回复
dongrong1856
dongrong1856 用西班牙语和什么不起作用?
3 年多之前 回复
douzhong2954
douzhong2954 我有他们西班牙语,不工作。
3 年多之前 回复
dongpin4611
dongpin4611 对于查询字符串,您需要在尝试存储之前对值使用htmlentities()。此外,您应该了解MySQLi的预准备语句。即使逃避字符串也不安全!不相信吗?
3 年多之前 回复
dongping4461
dongping4461 name是一个MySQL关键字,因此您需要更改列名称或在查询中使用时返回勾选。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问