我不知道问你这个问题的最好方法,但我使用的是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
我不知道如何妥善处理这个......
答案 0 :(得分:0)
这不是PHP的错误,它与您的数据库有关。在您的表结构中,您不允许电子邮件字段具有空值,但您在php $ email值中发送空值。
答案 1 :(得分:0)
变量 $ email 未初始化,因此它为空。
您的表约束不允许电子邮件列中的空值