无法将我的PHP代码连接到数据库 - Android Studio

时间:2016-06-02 19:19:45

标签: php android mysql

我不知道问你这个问题的最好方法,但我使用的是Android Studio,phpMyAdmin,MySQL和PostMan插件来调试我的php文件。

我正在尝试创建一个需要用户注册和登录的应用,并且在尝试注册用户时遇到问题。我在Android Studio中遇到以下错误:

org.json.JSONException: Value Error of type java.lang.String cannot be converted to JSONObject

这个值“错误”与我的PHP文件有关,它返回一个String,因为它抱怨我的sql查询(或者我理解它的方式?):

<?php
$servername = "my server";
$username = "my user";
$password = "my password";
$dbname = "my db";

try {    

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO User (username, email, passcode) 
VALUES (:username, :email, :passcode)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':passcode', $passcode);



$stmt->execute();

}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
$conn = null;
?>

现在,我从PostMan得到的错误就是:

Error: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'email' cannot be null

我不知道如何妥善处理这个......

2 个答案:

答案 0 :(得分:0)

这不是PHP的错误,它与您的数据库有关。在您的表结构中,您不允许电子邮件字段具有空值,但您在php $ email值中发送空值。

答案 1 :(得分:0)

变量 $ email 未初始化,因此它为空。

您的表约束不允许电子邮件列中的空值