在PHP中连接到数据库时出错

时间:2014-03-10 20:38:21

标签: php mysqli

我有一个表单,从中将值提交到数据库。但是我无法连接它,也不知道为什么。

在提交时,localhost没有回复。

这是我的HTML布局:

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <h1>Student Entry</h1>
        <form action="new.php" method="post">
        <table>
            <tr>
                <td>Id</td>
                <td><input type="text" name="id"></td>
            </tr>
            <tr>
                <td>Name</td>
                <td><input type="text" name="name"></td>
            </tr>
            <tr>
                <td><input type="submit"></td>
                <td><input type="reset"></td>
            </tr>
         </table>
         </form>
    </body>
</html>

这是PHP代码:

<?php
     $id = $_POST["id"];
     $name = $_POST["name"];
     echo $id,$name;
     $con = mysqli_connect("localhost:81","root","");
     if(!$con) {
        echo "could not connect".mysqli_connect_error();
     }
     echo 'connection success';
     mysqli_select_db($con,"student");
     mysqli_query($con,"INSERT INTO info (id,name) VALUES ($id,$name)");
     mysqli_close($con);
?>

1 个答案:

答案 0 :(得分:1)

你很可能没有连接到MySQL服务器,而只是没有连接。

$con = mysqli_connect("localhost:81","root","");

see the manual了解此功能的可通过参数。第一个参数必须是主机名,只能是主机名。在您的情况下,这将是localhost。如果您需要指定端口,则应将其作为第五个参数传递。

请记住,MySQL和IIS完全相互独立。 IIS的默认端口是80.MySQL的默认端口是3306.这些端口完全独立,软件将始终占用相同的端口,与其他已安装的应用程序无关。

您可能想尝试:

$con = mysqli_connect("localhost","root","");

如果要指定端口,则必须使用:

$con = mysqli_connect("localhost","root","", "", 3306);

连接到默认的MySQL安装。

如果你的MySQL服务器真的在另一个端口上侦听,例如因为你相应地改变了配置,你可以改变最后一个参数。