我的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_*
扩展名已弃用,不应再使用。