PHP & MySQL - 数据库连接问题

标签 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());
}
?>

最佳答案

说实话,这远不是最好的方式......

  • 你应该使用define()像其他人一样小写。在我看来,PHP 允许混合大小写的函数名称是一个糟糕的选择。
  • 当您define() 数据时,您就将其设为全局。当您立即使用它时,没有理由将其设置为全局。
  • 您的评论是多余的。它应该解释为什么,而不是什么。很明显,您正在连接到那里的数据库。
  • 您使用错误抑制运算符 (@)。不要那样做。
  • 您使用 mysqli_connect(),虽然比 mysql_connect() 好,但它不是 PDO (尽管这是主观的)。
  • $dbc 是一个全局变量。最好把它封装在一个对象中,用它的公共(public)方法来查询等。
  • trigger_error()老了。你应该使用 exceptions .此外,确保错误报告不会出现在最终用户的输出中。
  • 您使用 ?> 结束标记。一般是recommended在文件中省略它,因为它通常是 Headers already sent 类型错误的问题。

...但也许我只是吹毛求疵:P

关于PHP & MySQL - 数据库连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5797998/

相关文章:

mysql - 使用 UNION ALL 优化 SQL 查询

javascript - 在浏览器中捕获由我的脚本创建的特定 cookie

MYSQL:在单个语句中选择多个 if(field ='x' max(time)/if(field ='y' min(time)) 值

mysql - 根据相邻行中字段的值在 mysql 中选择一行

php - 当您有隐藏字段时阻止验证 Codeigniter

javascript - 在NodeJS中,有没有类似dependent : :destroy in Ruby for associated records?的方法

mysql - 如何使用 shadow hash 从 unix 用户创建 mysql 用户

php - 最后插入 id 值存储到同一个表的另一个特定列

php - 为什么我的输出会改变?

php - 未找到基表或 View :1146 in symfony3