没有选择数据库消息。 PHP,MySQL的

时间:2016-08-04 10:41:58

标签: php mysql database

我在本地服务器上有一个数据库。我正在尝试访问此数据库。我在数据库中有一个venueTypeMaster表。我试图从数据库中获取所有的venuetypes。但是当我运行脚本消息时,我得到的是 - “没有选择数据库”。

我有一个类,我在php脚本中创建了两个函数。对于createVenue,它不会发送任何消息,并且查询已成功执行。但对于getVeunueTypes,它显示此消息。两者的连接都是一样的。

数据库脚本:

    <?php
include_once("config.php");
include_once("exceptions.php");
class DB {
    static $con;

    public static function getConnection() {
        try {
            if ( DB::$con == null ) {
                DB::$con = mysqli_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD);
                if ( DB::$con) {
                    $status  = mysqli_select_db(DB::$con,DB_NAME);
                    if (! $status )  throw new DBSelectionExcpetion(mysqli_error());
                    return DB::$con;
                } else {
                    $e = new DBConnectionException(mysqli_error());
                    throw $e;
                }
            }
            return DB::$con;
        } catch(DBConnectionException $e) {
            throw $e;
        } catch(DBSelectionExcpetion $de) {
            throw $de;
        }
        return null;
    }
?>

venueTypes脚本

    <?php
include("exceptions.php");
include("DB.php");
include("config.php");

class VenueTypes {

    public function getVenueTypes() {
        try {
            $con = DB::getConnection();

            $query = "select * from venueTypeMaster";

            $rs = mysql_query($query) or die (json_encode(array("result"=>-1, "message"=>mysql_error())));
            $n = mysql_num_rows($rs);

            $vt = array();

            if ( $n > 0 ) {

                while ( $row = mysql_fetch_assoc($rs)) {
                    $vt[] = $row;
                }

                $result = array("result"=>1, "message"=>"success", "venueTypes" => $vt);
                return json_encode($result);
            } else {
                $result = array("result"=>-1, "message"=>"Venue types list is empty");
                return json_encode($result);
            }
        } catch(DBConnectionException $e) {
            $result = array("result"=>-1, "message"=> $e -> getMessage());
            return json_encode($result);
        }
        return null;
    }

    public function createVenueType($fields) {

        try {

            $required = array("venuetype", "active", "entry_by", "entry_date", "entry_time", "last_modify_date", "ip_addr","venue_name");
            $actual = array_keys($fields);
            $intersection = array_intersect($required, $actual);

            $n1 = sizeof($required);
            $n2 = sizeof($intersection);

            if ( $n1 != $n2 ) {
                throw new MissingParameterException();
            }
            $con = DB::getConnection();

            $keys = array_keys($fields);
            $values = array_values($fields);

            $columns = implode(",", $keys);

            $n = sizeof($values);
            for($i=0;$i<$n; $i++) {
                $values[$i] = "'" . mysqli_real_escape_string($con,$values[$i]) . "'";
            }

            $columnValues = implode(",", $values);

            $query = "insert into venuetypemaster($columns) values($columnValues)";

            mysqli_query($con,$query) or die (json_encode(array("result"=>-1, "message"=>mysqli_error())));
            $af = mysqli_affected_rows($con);
            if ( $af == 1 ) {
                $venuetypeId = mysqli_insert_id($con);
                $result = array("result"=>1, "message"=>"success", "venuetypeId" => $venuetypeId);
                return json_encode($result);
            } else {
                $result = array("result"=>-1, "message"=>"Failed to register");
                return json_encode($result);
            }
        } catch(DBConnectionException $e) {
            $result = array("result"=>-1, "message"=> $e -> getMessage());
            return json_encode($result);
        }
        return null;
    }
?>

getVenueType脚本

    <?php

header("Content-type: application/json");

if ( $_SERVER['REQUEST_METHOD']=='GET') {

    include_once ("../include/VenueTypes.php");


    try {

            $v = new VenueTypes();
            $response = $v -> getVenueTypes();

            //$response is null means something went wrong as a result we got null result from above statement

            if ( $response == null ) {
                $response = json_encode(array("result" => -2, "message" => "Empty result"));
                echo $response;
            } else {
                echo $response;
            }
        } catch(Exception $e) {
            $result = array("result" => -1, "message" => $e -> getMessage());
            echo json_encode($result);
        }
    } else {
        $result = array("result" => -3, "message" => "Unsupported method : " . $_SERVER['REQUEST_METHOD']);
        echo json_encode($result);
    }
    ?>

有人可以帮忙吗...谢谢..

1 个答案:

答案 0 :(得分:1)

问题在于您在mysqli_xxx()mysql_xxx()函数之间进行混合。这两个库彼此不兼容;您只能在整个代码中使用其中一个。

由于mysql_xxx()函数已过时且已弃用,这意味着您只应使用mysqli_xxx()

  1. 将代码中出现的所有mysql_更改为mysqli_

  2. 您还需要对这些代码行进行其他更改 - 特别是这将包括添加数据库引用变量(即getConnection()返回的变量),但其他一些语法更改也可能是必要的。