mysqli连接的PHP函数给出错误

创建php函数和mysql的新手.我具有连接到数据库db_conect_nm()的功能.该文件位于db_fns.php文件中,其中包含用于连接到我的数据库的用户和密码.我创建此文件是为了拥有更安全的数据库连接.我将其放在public_html之外的目录中,并收到错误PHP警告:mysqli :: mysqli()[< a href ='mysqli.mysqli'> mysqli.mysqli< / a>] ::(28000/1045):用户’negoti7’@’localhost’的访问被拒绝(使用密码:NO)…

在寻找解决方案时,我看到注释,表明该数据库用户可能没有root权限,因此我将其放在public_html的目录中,该目录与被调用的程序相同.我仍然遇到相同的错误.

我已经测试了该连接而不是一个函数,并且它可以正常工作.怎么了?为什么这不能正常工作?我真的想将其直接放在代码之外的其他地方,并使其更加安全.

db_fns.php内容

<?php
//Database server
$host= 'localhost';
$nm_name= 'myname_databasename';  //sanitized data
$nm_user= 'myname_dbusername';
$nm_pword= 'password';

// db connect to nm database
function db_connect_nm()
{
   $nm_connect = new mysqli($host, $nm_user, $nm_pword, $nm_name);

   if (!$nm_connect)
     throw new Exception('Could not connect to NM database currently');
   else
   return $nm_connect; 
}

?>

我从nm_functions.php调用它,其中包含db_fns.php.

nm_functions.php

<?php require_once('sanitizedpathto/db_fns.php');

......some code

  $conn_nm = db_connect_nm();
  $result_sub = $conn_nm->query("select * from subscribers where uname='$username'");

  .... more code

?>

有任何想法吗?
谢谢

解决方法:

可能是变量的范围吗?您是否尝试过定义要测试的函数中的变量?

像这样:

<?php

// db connect to nm database
function db_connect_nm()
{
  //Database server
    $host= 'localhost';
    $nm_name= 'myname_databasename';  //sanitized data
    $nm_user= 'myname_dbusername';
    $nm_pword= 'password';

   $nm_connect = new mysqli($host, $nm_user, $nm_pword, $nm_name);

   if (!$nm_connect)
     throw new Exception('Could not connect to NM database currently');
   else
     return $nm_connect; 
}

?&GT

上一篇:自定义linux系统日志格式(messages,cron,ssh等日志格式)


下一篇:ROS学习笔记10-写一个简单的订阅者和发布者(C++版本)