我的PHP脚本有问题,我想检查MySQL-Logindata是否有效。我在某个地方找到了mysql_ping()函数,但是它无法正常工作,因为即使插入的数据完全错误,它在每种情况下都会返回true。我该如何解决?

$verbindung = mysql_connect($_POST["mysql_host"], $_POST["mysql_user"],
$_POST["mysql_pwd"]);

if (!mysql_ping($verbindung)) {
    $break = true;
}
else {
    // Check here also via SQL, if database $_POST["mysql_db"] exists
}

最佳答案

这已经比需要的复杂得多,应该做正确的事情。所有用户名很有可能起作用的原因是,默认情况下,MySQL具有一个接受任何用户名的匿名用户''@'localhost'。可能您想删除该用户。 (DROP USER ''@'localhost',请确保您可以先以其他用户身份登录,然后使用SHOW GRANTS查看正在使用的用户)

为了简化起见,如果出现问题,连接校准将失败,因此您不需要该ping调用。如果连接的寿命更长,并且要检查连接是否仍然有效,则可以使用ping

支票的简单形式如下所示:

$verbindung = new mysqli($_POST["mysql_host"], $_POST["mysql_user"], $_POST["mysql_pwd"]);
if (!$verbindung) {
    echo "Wrong settings";
}


请注意,我已更改为mysqli insterface。 PHP中提供mysql功能的旧版mysql_*扩展名已弃用,不应再使用。

10-08 04:10