使用 php 脚本将数据插入 mysql 数据库不起作用
Insert data into mysql db with php script doesnt work
你好开发者,
我正在尝试使用 php 脚本将数据从我的 Android 应用程序插入到我的 MySql 服务器(运行ning on wamp)。
这些是我的 php 脚本:
<?php
define('hostname','localhost');
define('user','root');
define('password','');
define('databaseName','tutorial');
$connect = mysqli_connect(hostname,user,password,databaseName);
?>
和
<?php
if($_SERVER["REQUEST_METHOD"]=="POST") {
require 'connection.php';
createStudent();
}
function createstudent(){
global $connect;
$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$age = $_POST["age"];
$query = "insert into student(firstname,lastname,age) values ('$firstname','$lastname','$age');";
mysqli_query($connect,$query) or die (mysqli_error($connect));
mysqli_close($connect);
}
?>
这是我的 android 代码:
requestQueue = Volley.newRequestQueue(getApplicationContext());
StringRequest request = new StringRequest(Request.Method.POST, insertUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> parameters = new HashMap<String,String>();
parameters.put("firstname",et_firstname.getText().toString());
parameters.put("lastname",et_lastname.getText().toString());
parameters.put("age",et_age.getText().toString());
return parameters;
}
};
requestQueue.add(request);
让我说:我知道这是一个很复杂的问题,但我的想法几乎已经结束,几周以来一直在寻找解决方案,如果有人能帮助我,我会很高兴,也因为我我不是很喜欢 php 我无法自拔。
谢谢
问候
亚历克斯
编辑
当我运行 Postman 上的脚本填充数据时,出现这些错误:
Postman error
原因是连接。
正确的语法是
$con = mysqli_connect("localhost","my_user","my_password","my_db");
所以,一定是
$connect = mysqli_connect(hostname,user,password,databaseName);
去掉空括号
您可以使用浏览器访问 PhpMyAdmin 吗?该错误指出无法使用您的 PHP 应用程序访问数据库。
如果不能,请确保它已正确安装并正常工作。
如果可以,请确保安装了 mysqli 驱动程序。请参阅 this question 查看您是否安装并配置了 mysqli 驱动程序。
首先在某些在线网站上通过 运行 检查您的 api 并通过 php 脚本 运行 简单地插入一些数据来检查您的数据库名称是否正确在网络上,如果问题没有解决,则可能是您的数据库连接出现问题。
解决方案
我终于明白问题出在哪里了,如果其他人有这个问题:
我是 运行 另一个 MySql 服务器,我前段时间安装过,但忘记了。所以这个是 运行 在我的默认端口上。我卸载了此服务器并将 "real" 服务器的端口更改为默认端口。
无论如何,非常感谢所有试图帮助我的人,他们帮助我找到了解决方案。
你好开发者,
我正在尝试使用 php 脚本将数据从我的 Android 应用程序插入到我的 MySql 服务器(运行ning on wamp)。
这些是我的 php 脚本:
<?php
define('hostname','localhost');
define('user','root');
define('password','');
define('databaseName','tutorial');
$connect = mysqli_connect(hostname,user,password,databaseName);
?>
和
<?php
if($_SERVER["REQUEST_METHOD"]=="POST") {
require 'connection.php';
createStudent();
}
function createstudent(){
global $connect;
$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$age = $_POST["age"];
$query = "insert into student(firstname,lastname,age) values ('$firstname','$lastname','$age');";
mysqli_query($connect,$query) or die (mysqli_error($connect));
mysqli_close($connect);
}
?>
这是我的 android 代码:
requestQueue = Volley.newRequestQueue(getApplicationContext());
StringRequest request = new StringRequest(Request.Method.POST, insertUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> parameters = new HashMap<String,String>();
parameters.put("firstname",et_firstname.getText().toString());
parameters.put("lastname",et_lastname.getText().toString());
parameters.put("age",et_age.getText().toString());
return parameters;
}
};
requestQueue.add(request);
让我说:我知道这是一个很复杂的问题,但我的想法几乎已经结束,几周以来一直在寻找解决方案,如果有人能帮助我,我会很高兴,也因为我我不是很喜欢 php 我无法自拔。
谢谢 问候 亚历克斯
编辑
当我运行 Postman 上的脚本填充数据时,出现这些错误:
Postman error
原因是连接。
正确的语法是
$con = mysqli_connect("localhost","my_user","my_password","my_db");
所以,一定是
$connect = mysqli_connect(hostname,user,password,databaseName);
去掉空括号
您可以使用浏览器访问 PhpMyAdmin 吗?该错误指出无法使用您的 PHP 应用程序访问数据库。
如果不能,请确保它已正确安装并正常工作。
如果可以,请确保安装了 mysqli 驱动程序。请参阅 this question 查看您是否安装并配置了 mysqli 驱动程序。
首先在某些在线网站上通过 运行 检查您的 api 并通过 php 脚本 运行 简单地插入一些数据来检查您的数据库名称是否正确在网络上,如果问题没有解决,则可能是您的数据库连接出现问题。
解决方案
我终于明白问题出在哪里了,如果其他人有这个问题:
我是 运行 另一个 MySql 服务器,我前段时间安装过,但忘记了。所以这个是 运行 在我的默认端口上。我卸载了此服务器并将 "real" 服务器的端口更改为默认端口。
无论如何,非常感谢所有试图帮助我的人,他们帮助我找到了解决方案。