【发布时间】:2015-08-02 08:32:34
【问题描述】:
我有一个 wamp 服务器设置。它完美地工作:) 然后我输入 phpMyAdmin 并创建了一个表。使用我制作的 android 应用程序,我想在我的数据库中插入一条记录。 android (java) 代码是正确的,我 100% 确定这一点。但是,当我创建记录时,它不起作用。
由于我对 PHP 不太了解,所以我认为我的错误在于 Register.php 的某个地方
这是文件: 对我的问题的任何见解都会很棒!
请注意,我在真实文件中使用了正确的公共 IP。我刚刚为下面的代码输入了一个随机的。另外,我创建了一个具有所需权限的用户(代替用户名和密码)。数据库“数据库”也确实存在。
Register.php
$con = mysqli_connect("http://148.12.0.153:3306","username","password", "database");
$username = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$phone = $_POST["phone"];
$balance = $_POST["balance"];
$NameAndSurname = $_POST["NameAndSurname"];
$DateOfBirth = $_POST["DateOfBirth"];
$SchoolName = $_POST["SchoolName"];
$Gender = $_POST["Gender"];
$Grade = $_POST["Grade"];
$Class = $_POST["Class"];
$Country = $_POST["Country"];
$Province = $_POST["Province"];
$Address = $_POST["Address"];
$City = $_POST["City"];
$PostalCode = $_POST["PostalCode"];
$statement = mysqli_prepare($con, "INSERT INTO users (username, email, password, phone, balance, NameAndSurname, DateOfBirth, SchoolName, Gender, Grade, Class, Country, Province, Address, City, PostalCode) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "ssssisssiisssssi", $username, $email, $password, $phone, $balance, $NameAndSurname, $DateOfBirth, $SchoolName, $Gender, $Grade, $Class, $Country, $Province, $Address, $City, $PostalCode);
mysqli_stmt_execute($statement);
mysqli_stmt_close($statement);
mysqli_close($con);
【问题讨论】:
-
我认为 3306 号端口是不必要的。你能把它删掉再试一次吗?
-
echo/print/log $statement 的内容,将这个和表 ddl 添加到帖子中
-
首先尝试从主机中删除 http:// 并尝试不带 http:// 的 ip 并尝试使用 echo mysqli_error($con) 打印 mysqli 错误;
-
我唯一能看到的可能是问题(除了前面提到的附加到服务器地址的端口,它应该只是一个 IP 地址或主机名 - 没有 http,没有端口)是字段名称没有用反引号括起来,密码在 mysql 中似乎具有特殊意义
-
收到的错误是用户'mingan'@'localhost'的访问被拒绝(使用密码:YES)该用户具有“所有权限”吗?我不知道怎么了..
标签: php android mysql mysqli wamp