因为MySQL是一个完全分布式的软件,我们必须考虑到这些可能性:服务不可用、网络堵塞或 者是我们的用户名及口令不匹配。在这些情况下,mysql_connect函数不能返回一个连接标识(因为连接未被建立)。这时,会返回一个逻辑假。这使 得我们可以用一个if语句来处理连接的情况:
$dbcnx = @mysql_connect("localhost", "root", "mypasswd"); if (!$dbcnx) { echo( " Unable to connect to the " . exit(); } |
在上面的代码段中出现了三个新的东西,首先,我们在mysql_connect函数前加了一个 @符号。包括mysql_connect在内的许多函数会在 失败后显示难看的错误信息。在函数名前加一个@符号可以告诉这个函数当执行失败时,允许我们显示我们自己友好的出错信息。
其次,在我们的if语句的条件中,$dbcnx变量前面加了一个惊叹号。这个惊叹号是PHP中 的“否运算符”。也就是说将逻辑真变为逻辑假,将逻辑假变为 逻辑真。这样,如果这个连接是失败的,mysql_connect会返回一个逻辑假,!$dbcnx将等于逻辑真,这样我们的if语句将被执行。相反,如 果这个连接是成功的,存储在$dbcnx中的连接标识将等于逻辑真(在PHP中,任何非零的数字都被认为是逻辑真),所以!$dbcnx会等于逻辑 假,if语句将不会被执行。
最后一个是exit函数,这是我们遇到的第一个没有参数的函数。这个函数的全部作用就是导致PHP停止对本页的阅读。如果数据库连接失败这是一个很好的响应,因为绝大多数情况下,如果不能连接到数据库,这一页不会显示任何有用的信息。
和我们在第二章做过的一样,连接被建立后下一步就是选择工作的数据库。我们将要在第二章中所建立的笑话数据库中工作。这个数据库被命名为jokes。在PHP中用来选择数据库的另外一个函数:
mysql_select_db("jokes", $dbcnx); |
请注意我们在这儿使用了$dbcnx变量来指出了这个函数所使用的连接标识。这个参数实际上是可省略的。当省略这个参数时,函数会自动使用最后开启的那一个连接。这个函数成功后返回逻辑真,失败后返回逻辑假。为了谨慎起见,我们也用了一个if语句来处理错误:
if (! @mysql_select_db("jokes") ) { echo( " Unable to locate the joke " . exit(); } |
当建立了连接并选择了数据库之后,我们可以开始使用存储在数据库中的数据了