我有以下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
不是真或假?
我做错了什么?
由于
答案 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());
}
尽管如此,最好使用MySQLi或PDO_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)
。