【问题标题】:Database Connectivity in PHP - unexpected errorPHP 中的数据库连接 - 意外错误
【发布时间】:2012-06-01 10:58:43
【问题描述】:

以下是我尝试创建数据库连接的一段代码。请参阅下面的代码中的 cmets,其中我提到了问题的确切发生位置。此外,我还提到了一个运行良好的连接代码。

请告诉我如何调用我的dbconfig.php,这样它的行为就会像导致成功连接的那段代码一样。

谢谢

<?php

//Including Header file for the connectivity to the database
require_once('Connections/dbconfig.php');

  mysql_select_db($database_dbconfig, $dbconfig);
  // If I use the following line of code for connectivity then it works perfectly fine:
  //$dbh = new PDO('mysql:host=localhost;dbname=rare','root','');
  $dbh= $dbconfig;
  $q = 'select resident_id,u_first,u_last from z_events group by resident_id';
  /*
  The following error will occur when I try to make a connection from the header file:
  Fatal error: Call to a member function prepare() on a non-object in C:\Users\QAD\Downloads\CAR\index12 - Copy.php on line 200 
  */
  $user = $dbh->prepare($q);
  $user->execute();
?>

dbconfig.php

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_dbconfig = "localhost";
$database_dbconfig = "rare";
$username_dbconfig = "root";
$password_dbconfig = "";
$dbconfig = mysql_pconnect($hostname_dbconfig, $username_dbconfig, $password_dbconfig) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

【问题讨论】:

  • 你为什么要混合使用 PDO 和 mysql_*????
  • 我不知道,因为我正在从事其他项目
  • 这就是为什么我们有the docs :-)
  • 好的,我会调查的,谢谢...

标签: php sql connection database-connection connection-string


【解决方案1】:

您正在混合使用 mysql_* 函数和 PDO 函数 - 首先使用 mysql_connect 连接到您的数据库,然后使用 prepare() 查询您的数据库。

您应该完全移至 PDO,替换此行:

$dbconfig = mysql_pconnect($hostname_dbconfig, $username_dbconfig, $password_dbconfig) or trigger_error(mysql_error(),E_USER_ERROR); 

有了这个:

$dbconfig = new PDO('mysql:dbname=' . $database_dbconfig . ';host=127.0.0.1', $username_dbconfig, $password_dbconfig);

并将其放入您的其他文件中:

<?php

//Including Header file for the conectivity to the database
require_once('Connections/dbconfig.php');

  $dbh = $dbconfig;
  $q = 'select resident_id,u_first,u_last from z_events group by resident_id';
  $user = $dbh->prepare($q);
  $user->execute();
?>

【讨论】:

  • 我在查询中使用了直接变量,感谢您的帮助.....我不知道 PDO,因为我正在从事其他项目。
【解决方案2】:

试试这个

$connection = mysql_connect("localhost","root","") or die(mysql_error());
$db = mysql_select_db("database_name") or die(mysql_error());

【讨论】:

    【解决方案3】:

    将您的数据库选择更改为此

    mysql_select_db($database_dbconfig);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 2014-09-12
      • 2016-06-11
      • 2020-12-12
      • 2013-07-17
      相关资源
      最近更新 更多