【问题标题】:How to send text with space from Android to MySQL database如何将带有空格的文本从 Android 发送到 MySQL 数据库
【发布时间】:2017-01-26 11:39:09
【问题描述】:

您好,我是 Android 新手,我想从 Android 发送一个带有空格的文本(“我的名字是 Oliver Queen”)到 MySQL 数据库。 我在 PHP 中使用这个脚本:

<?php
$servername = " ";
$username = " ";
$password = " ";
$dbname = " ";

$id=$_GET['id'];
$project=$_GET["a"];

// Create connection..

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection

if ($conn->connect_error) {

 die("Connection failed: " . $conn->connect_error);

} 
//echo "$project";

$sql= $sql= "UPDATE user SET project = \"$project\" WHERE id= '$id'";  

$result = $conn->query($sql);

$conn->close();

?>

在 MySQL 中,我只找到 ("My") 空格前的第一个单词! 请有人帮我!!!!!!

【问题讨论】:

  • 不太确定,但将"UPDATE user SET project = \"$project\" WHERE id= '$id'"; 更改为"UPDATE user SET project = "$project" WHERE id= '$id'"; - 不带反斜杠
  • 你检查过 $project 的价值了吗?
  • MySql 不是在字符串字段周围使用单引号吗?为什么要在 id 周围使用它们而不是 project?

标签: php android mysql


【解决方案1】:

检查$project变量的值; 我敢打赌,您通过 GET 请求发送值,而不是正确编码它们。

如果您的 $project 值确实像我猜的那样是“我的”,那么请查看您的 Android 部分,并查看如何进行 url 编码(在 Java 中应该非常简单) - 寻找 @987654321 的等价物@ - 这应该可以解决您的问题。

在你让它工作之后,修改代码以处理 SQL 注入,切换到使用 PDO 进行 DB 访问和准备好的语句,这将增加你的代码的安全性。

【讨论】:

    【解决方案2】:

    首先,您应该通过在 varchar 属性而不是数字周围使用单引号来修复您的查询,还要注意 $sql = $sql = 您声明了两次:

    $sql= "UPDATE user SET project = '$project' WHERE id= $id";
    

    然后,您正尝试通过 GET 方法$project=$_GET["a"]; 接收字符串,因此您的 URL 应该被正确编码。

    【讨论】:

      猜你喜欢
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 2016-08-05
      • 1970-01-01
      相关资源
      最近更新 更多