2

我有以下 PHP 代码:

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

$db = "db";

mysql_select_db($db,$con);

现在以我的经验,$con应该是真的还是假的。当echo $con我得到:

Resource id #25

如果我执行以下代码,则回显永远不会触发(正如在上述语句之后所预期的那样):

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

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

我究竟做错了什么?

谢谢

4

3 回答 3

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::__construct()

于 2013-01-23T06:44:37.620 回答
0

它只是或or die(mysql_error());结尾的 b/c。

试一试:

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

mysql_select_db($db,$con);
?> 
于 2013-01-23T06:47:20.497 回答
-1

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

于 2013-01-23T06:48:00.187 回答