Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将我的网站连接到MySQL数据库?_Php_Mysql - Fatal编程技术网

Php 如何将我的网站连接到MySQL数据库?

Php 如何将我的网站连接到MySQL数据库?,php,mysql,Php,Mysql,下面是我在Sublime中的代码,但是数据库没有被调用 <?php$username="root"; $password="changedpassword";$database="User"; $field1-name=$_POST['name']; $field2-name=$_POST['password']; $field3-name=$_POST['email']; $field4-name=$_POST['sex']; $field5-name=$_POST['school'];

下面是我在Sublime中的代码,但是数据库没有被调用

<?php$username="root";
$password="changedpassword";$database="User";
$field1-name=$_POST['name'];
$field2-name=$_POST['password'];
$field3-name=$_POST['email'];
$field4-name=$_POST['sex'];
$field5-name=$_POST['school'];
$field6-name=$_POST['birth'];
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "INSERT INTO create_user (name, password, email, sex, school, birth) VALUES('','$field1-name','$field2-name',
'$field3-name','$field4-name','$field5-name','$field6-name')";mysql_query($query);mysql_close();?>

让我们一步一步地看一遍。首先,这是您当前的代码,经过整理以便于阅读:

<?php
$username = "root";
$password = "changedpassword";
$database = "User";
$field1_name = $_POST['name'];
$field2_name = $_POST['password'];
$field3_name = $_POST['email'];
$field4_name = $_POST['sex'];
$field5_name = $_POST['school'];
$field6_name = $_POST['birth'];
mysql_connect(localhost, $username, $password);
@mysql_select_db($database) or die("Unable to select database");
$query = "
    INSERT INTO
            create_user
                (
                    name,
                    password,
                    email,
                    sex,
                    school,
                    birth
                )
            VALUES
                (
                    '',
                    '$field1_name',
                    '$field2_name',
                    '$field3_name',
                    '$field4_name',
                    '$field5_name',
                    '$field6_name'
            )
";
mysql_query($query);
mysql_close();
?>

现在我们有了一些实际可行的方法。它非常不安全,存在大量SQL注入攻击的可能性,而且在最新的PHP上也不起作用,因为
mysql\uu
函数已被删除,但它实际上可能在某些地方起作用。您可能不想将其投入生产,但出于测试目的,我们已经取得了一些进展。

MySQL自PHP5.6以来就被弃用,而且不安全,请改用PDO或MySQLi

连接MySQLi

        <?php


        //MySQLi information

        $db_host     = "localhost";
        $db_username = "username";
        $db_password = "password";

        //connect to mysqli database (Host/Username/Password)
        $connection = mysqli_connect($db_host, $db_username, $db_password) or die("Error " . mysqli_error());

        //select MySQLi dabatase table
        $db = mysqli_select_db($connection, "table") or die("Error " . mysqli_error());

    $field1_name = $_POST['name'];
    $field2_name = $_POST['password'];
    $field3_name = $_POST['email'];
    $field4_name = $_POST['sex'];
    $field5_name = $_POST['school'];
    $field6_name = $_POST['birth'];

    $query = mysqli_query($connection, "INSERT INTO create_user
           (name, password, email, sex, school, birth ) VALUES
                    (
                        '$field1_name',
                        '$field2_name',
                        '$field3_name',
                        '$field4_name',
                        '$field5_name',
                        '$field6_name'
                )
    ");

您是否有任何错误?。它们不再得到维护。看到了吗?相反,请了解,并使用or-可以帮助您决定使用哪一种。应该进行一些合理的代码格式化和变量命名-这也将帮助您调试代码。PHP变量名称中不能有连字符打开错误报告-PHP将尝试在这里帮助您,但您没有听到这里仍然存在SQL注入问题。而
$\u POST
变量可能未定义。我想改进我自己的答案,但我没时间了。也许明天。@TRiG是的,当然,仍然有可能受到SQL注入攻击,但不像使用MySQL那样。从未说过它是100%安全的。更安全的是使用预先准备好的语句,但向他展示了这种方法,这样他就可以在自己的级别上理解它,为什么$u POST可以不定义?因为日期/性别应该与复选框和选择选项一起使用?我只是修复了他发布的内容,而不是从头开始写。那你为什么把它当成是一个发布什么的竞争对手?@TRiG我没有挑战你,你可以发布或改进任何你喜欢的东西。你的评论让我觉得你只是想把你的答案贴出来,而不是别的。对不起。不是想让它成为一个挑战或者听起来像是一次攻击。只是说我们的两个答案都需要一些注意事项。@TRiG如果这是你的意思,那么我们是好的,是的,在这种情况下你是对的;)好的,谢谢。当我从其他地方提取这段代码时,我没有意识到我使用了错误的格式。我想继续向您展示如何解决这些问题,但我太累了,想不清楚。也许明天吧。我试着运行你上面粘贴的内容,删除了额外的值,但即使这样,一旦我加载localhost并在站点的登录页面中输入信息,mysql数据库也不会更新以反映新插入的信息
        <?php


        //MySQLi information

        $db_host     = "localhost";
        $db_username = "username";
        $db_password = "password";

        //connect to mysqli database (Host/Username/Password)
        $connection = mysqli_connect($db_host, $db_username, $db_password) or die("Error " . mysqli_error());

        //select MySQLi dabatase table
        $db = mysqli_select_db($connection, "table") or die("Error " . mysqli_error());

    $field1_name = $_POST['name'];
    $field2_name = $_POST['password'];
    $field3_name = $_POST['email'];
    $field4_name = $_POST['sex'];
    $field5_name = $_POST['school'];
    $field6_name = $_POST['birth'];

    $query = mysqli_query($connection, "INSERT INTO create_user
           (name, password, email, sex, school, birth ) VALUES
                    (
                        '$field1_name',
                        '$field2_name',
                        '$field3_name',
                        '$field4_name',
                        '$field5_name',
                        '$field6_name'
                )
    ");