Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用php更新mysql中的数据时出错_Java_Php_Android_Mysql - Fatal编程技术网

Java 使用php更新mysql中的数据时出错

Java 使用php更新mysql中的数据时出错,java,php,android,mysql,Java,Php,Android,Mysql,我想用php更新数据库中的数据,logcat中显示的错误是 Error: UPDATE usersSET Question1=null2null,Question3=nullnull,Question4=nullnullnullnullWHERE email=bb<br>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the

我想用php更新数据库中的数据,logcat中显示的错误是

Error: UPDATE usersSET Question1=null2null,Question3=nullnull,Question4=nullnullnullnullWHERE email=bb<br>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=null2null,Question3=nullnull,Question4=nullnullnullnullWHERE email=bb' at line 1{"error":false,"uid":"56bd5f88afb7b3.99372648","user":{"name":"Bb","email":"bb","created_at":"2016-02-12 09:58:56","updated_at":null,"Question1":"","Question3":"","Question4":""}
错误:更新usersSET Question1=null2null,Question3=nullnull,Question4=nullwhere email=bb
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行{“error”:false,“uid”:“56bd5f88afb7b3.99372648”,“user”:{“name”:“bb”,“email”:“bb”,“created_at”:“2016-02-12 09:58:56”,“updated_at”:null,“Question1”:“Question3”:”,“问题4”:“}
Question1、Question3和Question4列的值没有得到更新,应该分别为null2null、NullNullNull、nullnullnullnull。这是为了检查您的版本的语法,我正在本地主机上运行5.5.12 php版本和5.6.17 mysql版本。我已经检查了语法,不同的站点显示不同的syntasx如何得到正确的一个,下面是我的php代码

PHP

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "android_api";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
require_once 'include/DB_Functions.php';
$db = new DB_Functions();

// json response array
$response = array("error" => FALSE);

if (isset($_POST['Question1']) && isset($_POST['Question3']) && isset($_POST['Question4'])) {

    // receiving the post params
    $email = $_POST['email'];
    $password = $_POST['password'];

     $Question1 = $_POST['Question1'];
    $Question3 = $_POST['Question3'];
    $Question4 = $_POST['Question4'];
 /*$sql = "INSERT INTO users (Question1, Question2, Question4)
    VALUES ('$Question1', '$Question3', '$Question4')"; */
    $user = $db->getUserByEmailAndPassword($email, $password);
   // $result = mysql_query("UPDATE users"."SET Question1='$Question1',Question3='$Question3',Question4='$Question4'"."WHERE email=$email";
    $sql="UPDATE users"."SET Question1=$Question1,Question3=$Question3,Question4=$Question4"."WHERE email=$email";
    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
    // get the user by email and password
    $user = $db->getUserByEmailAndPassword($email, $password);

    if ($user != false) {
        // use is found
        $response["error"] = FALSE;
        $response["uid"] = $user["unique_id"];
        $response["user"]["name"] = $user["name"];
        $response["user"]["email"] = $user["email"];
        $response["user"]["created_at"] = $user["created_at"];
        $response["user"]["updated_at"] = $user["updated_at"];
         $response["user"]["Question1"] = $user["Question1"];
          $response["user"]["Question3"] = $user["Question3"];
           $response["user"]["Question4"] = $user["Question4"];
        echo json_encode($response);
    } else {
        // user is not found with the credentials
        $response["error"] = TRUE;
        $response["error_msg"] = "ABCD";
        echo json_encode($response);
    }
} else {
    // required post params is missing
    $response["error"] = TRUE;
    $response["error_msg"] = "abcd";
    echo json_encode($response);
}
?>

遗漏了一些空格和引号(')。请将SQL语句更改为

 $sql ="UPDATE users" . " SET Question1 = '".$Question1."', Question3 = '".$Question3."', Question4= '".$Question4."' WHERE email = '".$email."'";
此外,这些变量中的值似乎不正确,请参见为什么您没有得到正确的值(或者您传递的是什么?)


遗漏了一些空格和引号(')。请将SQL语句更改为

 $sql ="UPDATE users" . " SET Question1 = '".$Question1."', Question3 = '".$Question3."', Question4= '".$Question4."' WHERE email = '".$email."'";
此外,这些变量中的值似乎不正确,请参见为什么您没有得到正确的值(或者您传递的是什么?)


这里你错过了三件事:
1.用户集后的空格
2.赋值的引号(问题1=null2null)
3.WHERE关键字前的空格(Question4=nullwhere)
您的查询的正确版本如下:

 UPDATE users SET Question1='null2null', Question3='nullnull' ,
    Question4='nullnullnullnull' WHERE email='b'
因此,请在脚本中替换以下行:

$sql    ="UPDATE users"."SET Question1=$Question1,Question3=$Question3,Question4=$Question4"."WHERE email=$email";

$sql    =" UPDATE users SET Question1 = '".$Question1."', Question3 = '".$Question3."', Question4= '".$Question4."' WHERE email = '".$email."'";

这里你错过了三件事:
1.用户集后的空格
2.赋值的引号(问题1=null2null)
3.WHERE关键字前的空格(Question4=nullwhere)
您的查询的正确版本如下:

 UPDATE users SET Question1='null2null', Question3='nullnull' ,
    Question4='nullnullnullnull' WHERE email='b'
因此,请在脚本中替换以下行:

$sql    ="UPDATE users"."SET Question1=$Question1,Question3=$Question3,Question4=$Question4"."WHERE email=$email";

$sql    =" UPDATE users SET Question1 = '".$Question1."', Question3 = '".$Question3."', Question4= '".$Question4."' WHERE email = '".$email."'";

您好,您需要正确保存由于数据包含null作为字符串而导致问题的详细信息

您需要按如下方式准备查询:

Question1=null2null

在保存到数据库之前,必须引用所有参数。如下所示

Question1='null2null'

下面是更新后的代码示例供您参考,请养成习惯,在创建时使用正确的带引号的字符串来清理查询,以提高可读性

$email = $_POST['email'];
$password = $_POST['password'];

$Question1 = $_POST['Question1'];
$Question3 = $_POST['Question3'];
$Question4 = $_POST['Question4'];

$user = $db->getUserByEmailAndPassword($email, $password);

$sql="UPDATE users SET Question1 = '$Question1', Question3 = '$Question3', Question4 = '$Question4' WHERE email = '$email'";
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
  echo "Error: " . $sql . "<br>" . $conn->error;
}
$email=$\u POST['email'];
$password=$_POST['password'];
$Question1=$_POST['Question1'];
$Question3=$_POST['Question3'];
$Question4=$_POST['Question4'];
$user=$db->getUserByEmailAndPassword($email,$password);
$sql=“UPDATE users SET Question1='$Question1',Question3='$Question3',Question4='$Question4',其中email='$email';
if($conn->query($sql)==TRUE){
echo“新记录创建成功”;
}否则{
echo“Error:”.$sql.“
”$conn->Error; }
您好,您需要正确保存由于数据包含null作为字符串而导致问题的详细信息

您需要按如下方式准备查询:

Question1=null2null

在保存到数据库之前,必须引用所有参数。如下所示

Question1='null2null'

下面是更新后的代码示例供您参考,请养成习惯,在创建时使用正确的带引号的字符串来清理查询,以提高可读性

$email = $_POST['email'];
$password = $_POST['password'];

$Question1 = $_POST['Question1'];
$Question3 = $_POST['Question3'];
$Question4 = $_POST['Question4'];

$user = $db->getUserByEmailAndPassword($email, $password);

$sql="UPDATE users SET Question1 = '$Question1', Question3 = '$Question3', Question4 = '$Question4' WHERE email = '$email'";
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
  echo "Error: " . $sql . "<br>" . $conn->error;
}
$email=$\u POST['email'];
$password=$_POST['password'];
$Question1=$_POST['Question1'];
$Question3=$_POST['Question3'];
$Question4=$_POST['Question4'];
$user=$db->getUserByEmailAndPassword($email,$password);
$sql=“UPDATE users SET Question1='$Question1',Question3='$Question3',Question4='$Question4',其中email='$email';
if($conn->query($sql)==TRUE){
echo“新记录创建成功”;
}否则{
echo“Error:”.$sql.“
”$conn->Error; }
用户之间的
$sql
设置之间的
$sql
没有空格
用户之间的
$sql
设置之间的
没有空格谢谢,但现在错误更改为错误:更新用户设置问题1=null2null,问题3=nullnull,问题4=nullnull其中email=bb
WHERE子句{中的未知列“bb”错误:false,“uid”:“56bd5f88afb7b3.99372648”,“user”:{“name”:“Bb”,“email”:“Bb”,“created_at:”2016-02-12 09:58:56”,“updated_at:”null,“Question1:”,“Question3:”,“Question4:“}}}我正在传递空字符串,这就是为什么它在引用每列的值的原因。请使用此
$sql=“UPDATE users”。“Question1=”$Question1”“,问题3=”,“$QUOTE3.”,问题4=”,“$QUOTE4.”其中电子邮件=”,“$email.”“;
谢谢,但是这些空格是否非常重要?是否有任何编辑器可以自行处理这些空格?谢谢,但现在错误变为错误:更新用户设置Question1=null2null,Question3=nullnull,Question4=nullnull WHERE email=bb
WHERE子句'{“error”:false,“uid”:“56bd5f88afb7b3.99372648”中的未知列'bb',用户:{name:“Bb”,“email:“Bb”,“created_at::“2016-02-12 09:58:56”,“updated_at:”null,“Question1:“,”Question3:“,”Question4:“}}}}我传递的是空字符串,这就是它读取空字符串的原因。引用每列的值。使用此
$sql=”UPDATE users“。设置问题1=“$Question1.”,问题3=“$Question3.”,问题4=”.$Question4.“'WHERE email='”“$email.”“;
谢谢,但这些空白是否非常重要?是否有任何编辑自行处理这些空白?