PHP& MySQL - 连接数据库问题

时间:2011-04-27 00:24:41

标签: php mysql

下面的脚本是连接到mysql数据库的最佳方式吗?如果不是我应该怎么做才能改进下面的脚本?

<?php
DEFINE ('DB_USER', 'a');
DEFINE ('DB_PASSWORD', '');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'c');

// Make the connection:
$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

if(!$dbc){
    trigger_error('Could not connect to MySQL: ' . mysqli_connect_error());
}
?>

3 个答案:

答案 0 :(得分:7)

这不是说实话的最佳方式......

  • 您应该像其他人一样使用小写define()。在我看来,PHP允许函数名称的混合大小写是一个糟糕的选择。
  • 当您define()该数据时,您将其设为全局数据。当您立即使用它时,没有理由让它全局化。
  • 你的评论是超级的。它应该解释为什么而不是是什么。很明显,你在那里连接数据库。
  • 您使用错误抑制器运算符(@)。不要那样做。
  • 您使用mysqli_connect(),虽然优于mysql_connect(),但它不是PDO(尽管这是主观的)。
  • $dbc是一个全局变量。如果将它封装在一个对象中,并使用其公共方法进行查询等,则会更好。
  • trigger_error()已经过时了。您应该使用exceptions。另外,请确保错误报告不会以最终用户的输出结束。
  • 您使用?>结束标记。通常recommended在文件中省略它,因为 Headers已发送类型错误通常会出现问题。

......但也许我只是在挑剔:P

答案 1 :(得分:1)

始终使用对象来管理资源(比如数据库连接是一种资源)。

http://php.net/manual/en/book.pdo.php

http://wezfurlong.org/blog/2004/may/first-steps-with-pdo/

答案 2 :(得分:0)

没有“最佳”方式连接数据库。在我看来,最好将所有这些包装到PDO对象中,以便于准备好的语句和隐蔽的设计。

话虽如此,你的方法无论如何都不错。