PHP mysql_connect没有返回布尔值

时间:2013-01-23 06:42:27

标签: php mysql syntax boolean

我有以下PHP代码:

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

$db = "db";

mysql_select_db($db,$con);

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

Resource id #25

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

if($con) { echo "it worked"; }

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

我做错了什么?

由于

3 个答案:

答案 0 :(得分:5)

检查mysql_connect返回值:

Returns a MySQL link identifier on success or FALSE on failure.

所以要检查连接:

if($con !== false) { echo "it worked"; }

或在出现错误时退出:

if (!$con) {
    die('Could not connect: ' . mysql_error());
}

尽管如此,最好使用MySQLiPDO_MySQL代替mysql_connect,因为它很快就会被弃用:

  

警告

     

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

     

mysqli_connect()

     

PDO :: __构建体()

答案 1 :(得分:0)

最后只是b / c或or die(mysql_error());

试一试:

<?php
$con = mysql_connect("localhost","name","pass");
$db = "db";
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db($db,$con);
?> 

答案 2 :(得分:-1)

我认为这是因为or die(mysql_error());部分。我应该只是$con = mysql_connect("localhost","name","pass")。然后你可以这样检查:if (!$con)