PHP mysql_connect没有返回布尔值

Lan*_*ens 2 php mysql syntax boolean

我有以下PHP代码:

$con = mysql_connect("localhost","name","pass") or die(mysql_error());

$db = "db";

mysql_select_db($db,$con);
Run Code Online (Sandbox Code Playgroud)

根据我的经验,$con应该是真是假.当echo $con我得到:

Resource id #25
Run Code Online (Sandbox Code Playgroud)

如果我执行以下代码,则echo永远不会触发(在上述语句之后可以预期):

if($con) { echo "it worked"; }
Run Code Online (Sandbox Code Playgroud)

当我针对此连接运行查询时,一切都按预期工作.有没有理由说这$con不是真或假?

我究竟做错了什么?

谢谢

Kuf*_*Kuf 5

检查mysql_connect返回值:

Returns a MySQL link identifier on success or FALSE on failure.
Run Code Online (Sandbox Code Playgroud)

所以检查连接:

if($con !== false) { echo "it worked"; }
Run Code Online (Sandbox Code Playgroud)

或者在出现错误时退出:

if (!$con) {
    die('Could not connect: ' . mysql_error());
}
Run Code Online (Sandbox Code Playgroud)

但是请注意,最好使用MySQLiPDO_MySQL,mysql_connect因为它很快就会被弃用:

警告

自PHP 5.5.0起,此扩展已弃用,将来将被删除.相反,应该使用MySQLi或PDO_MySQL扩展.另请参阅MySQL:选择API指南和相关的常见问题解答以获取更多信息.该功能的替代方案包括:

mysqli_connect()

PDO :: __结构()