我有一个config.php文件,比如
<?php
/**
* Database config variables
*/
define("DB_HOST", "blabla");
define("DB_USER", "blabla");
define("DB_PASSWORD", "blabla");
define("DB_DATABASE", "blabla");
?>并且我有一个connect.php文件,比如
<?php
class DB_Connect {
// constructor
function __construct() {
}
// destructor
function __destruct() {
// $this->close();
}
// Connecting to database
public function connect() {
require_once 'config.php';
// connecting to mysql
$con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
// selecting database
mysql_select_db(DB_DATABASE);
// return database handler
return $con;
}
// Closing database connection
public function close() {
mysql_close();
}
}
?>并且我有一个functions.php文件,比如
<?php
class DB_Functions {
private $db;
//put your code here
// constructor
function __construct() {
include_once 'connect.php';
// connecting to database
$this->db = new DB_Connect();
$this->db->connect();
}
// destructor
function __destruct() {
}
/**
* Storing new user
* returns user details
*/
public function insertRecord($name, $email, $gcm_regid, $password) {
// insert user into database
$response = array();
$query0 = "SELECT * FROM gcm_users WHERE name='$name'";
$result0 = mysql_query($query0);
if(mysql_fetch_array($result0) == NULL){
//insert...
// insert user into database
$query = "INSERT INTO `gcm_users`(`id`, `gcm_regid`, `name`, `email`) VALUES (NULL,'$gcm_regid','$name','$email');";
$result= mysql_query( $query);
// check for successful store
if ($result) {
// get user details
// $result2 = mysql_query("SELECT * FROM gcm_users WHERE name = '$name'") or die(mysql_error());
// return user details
// if (mysql_num_rows($result2) > 0) {
$response["success"] = 1;
$response["message"] = "record added";
// echo no users JSON
return $response;
}else{
$response["success"] = 0;
$response["message"] = "No records added";
// echo no users JSON
return $response;
}
}else{
$response["success"] = 0;
$response["message"] = "Record already exists";
// echo no users JSON
return $response;
}
}
?>我有一个简单的插入记录的函数,但它不起作用,我认为多文件连接系统在传输连接时出现错误,但我找不到为什么.Please会帮助我谢谢。顺便说一下,我从另一个文件调用此方法,该文件包含并调用此方法,如下所示
include_once 'functions.php';
$db = new DB_Functions();
$res = $db->insertRecord($name, $email, $gcm_regid, $password);
echo json_encode($res);很抱歉造成误导,但我通过一个安卓应用程序使用这个连接,当我连接时,程序总是进入else部分,而不是if($result) part.However,而不是使用另一个config.php和connect.php,并且只将所有内容写入相同的文件中
<?php
class DB_Functions {
private $db;
//put your code here
// constructor
function __construct() {
include_once 'connect.php';
// connecting to database
$this->db = new DB_Connect();
$this->db->connect();
}
// destructor
function __destruct() {
}
/**
* Storing new user
* returns user details
*/
public function insertRecord($name, $email, $gcm_regid, $password) {
$con = mysql_connect("blabla","blabla","blabla");
mysql_select_db('blabla');
// insert user into database
$response = array();
$query0 = "SELECT * FROM gcm_users WHERE name='$name'";
$result0= mysql_query( $query0 , $con);
if(mysql_fetch_array($result0) == NULL){
//insert...
// insert user into database
$query = "INSERT INTO `gcm_users`(`id`, `gcm_regid`, `name`, `email`) VALUES (NULL,'$gcm_regid','$name','$email');";
$result= mysql_query( $query , $con);
// check for successful store
if ($result) {
// get user details
// $result2 = mysql_query("SELECT * FROM gcm_users WHERE name = '$name'") or die(mysql_error());
// return user details
// if (mysql_num_rows($result2) > 0) {
mysql_close($con);
$response["success"] = 1;
$response["message"] = "products found";
// echo no users JSON
return $response;
}else{
mysql_close($con);
$response["success"] = 0;
$response["message"] = "No products added";
// echo no users JSON
return $response;
}
}else{
mysql_close($con);
$response["success"] = 0;
$response["message"] = "Product already exists";
// echo no users JSON
return $response;
}
}
?>当我使用面向对象的连接模式时,$result返回true,并且记录是added.In没有错误,$result变量没有变成true的情况。
发布于 2014-09-04 15:41:56
我无可奉告。不管怎样..。
根据here的说法,“这个扩展从PHP5.5.0开始就被弃用了,并将在未来被删除。”考虑使用PDO:http://php.net/manual/en/book.pdo.php。
另外,考虑使用如下内容检查连接和数据库选择:
$con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$con)
{
die(“Connection issue: ” . mysql_error());
}
$db_selection=mysql_select_db(DB_DATABASE);
if(!$db_selection)
{
die(“Database selection issue: ” . mysql_error());
}如果没有传入要作为第二个参数使用的连接,*mysql_select_db将使用mysql_connect()打开的最后一个连接。http://php.net/manual/en/function.mysql-select-db.php
在修改数据库信息以适应我的测试环境之后,它工作得很好,所以我不认为$this-> DB ->connect();是问题所在。我会仔细检查是否使用了正确的DB和表信息。希望这能帮上点忙。新来的。
此外,您发布的functions.php文件缺少:}?>。您是否打开了错误报告?可能需要检查是否正在创建DB_Functions实例。
https://stackoverflow.com/questions/25658905
复制相似问题