使用 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" 服务器的端口更改为默认端口。

无论如何,非常感谢所有试图帮助我的人,他们帮助我找到了解决方案。