Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在嵌入javascript的php页面中使用类_Javascript_Php_Pdo - Fatal编程技术网

尝试在嵌入javascript的php页面中使用类

尝试在嵌入javascript的php页面中使用类,javascript,php,pdo,Javascript,Php,Pdo,我正在尝试使用已声明的类 当用户在用户名文本框中键入内容时,我已经使用javascript函数加载了一个php文件,并在其中检查用户名是否可用。每次按键时都会调用此文件 主页上已经声明了一个到我的数据库的连接,它是一个类,但是php文件实际上不能使用数据库类。我能做什么 如果我写了一个单独的脚本来连接数据库,它可以工作,但我不想这样做 Php文件的内容: $query("SELECT username FROM client WHERE username = :username"

我正在尝试使用已声明的类

当用户在用户名文本框中键入内容时,我已经使用javascript函数加载了一个php文件,并在其中检查用户名是否可用。每次按键时都会调用此文件

主页上已经声明了一个到我的数据库的连接,它是一个类,但是php文件实际上不能使用数据库类。我能做什么

如果我写了一个单独的脚本来连接数据库,它可以工作,但我不想这样做

Php文件的内容:
        $query("SELECT username FROM client WHERE username = :username");
        $query_params = array(
            ':username' => $username
            );
        $db->DoQuery($query);
        $check_num_rows = $db->fetch();

        if ($username == NULL)
            echo 'Choose a Username';
        else if (strlen($username)<=3)
            echo 'too short.';
        else {
            if ($check_num_rows ==0)
                echo "Available!";
            else if ($check_num_rows >= 1)
                echo "Not Available.";
        }
        ?>

加载原始页面时,您是从数据库类创建对象,对吗

当您使用Ajax向服务器查询用户名时,这是一个全新的请求,它对以前的请求一无所知


因此,只需添加类似于
require_once('my/path/database.php')的内容$db=新数据库()
到响应ajax请求的PHP脚本。

在一个文件的索引中加入数据库连接,使用
include
require
将代码包含在新页面中。您的代码有语法错误。在已经注释的内容旁边:使用include/require或了解自动加载:
 <script type="text/javascript">
    $(document).ready(function() {
  $('#wowson').load('functions/check_username.php').show();
  $('#username_').keyup(function() {
    $.get('functions/check_username.php', { username: forms.username.value },
      function(result) {
        $('#wowson').html(result).show();
      });
  });    
  });
 </script>

<label>Username:</label><br>
<input id="username_" name="username" required="required" type="text" placeholder="Username"/>
<div id="wowson">
       </div>
 class database {
        public function initiate() {
          try
          {
            $this->database = new PDO("mysql:host='host';dbname='db", 'user, 'pass');
          }
          catch(PDOException $e)
          { 
            $error = "I'm unable to connect to the database server.";
            die("Failed to connect to database: " . $e->getMessage());
          }

        }

        public function DoQuery($query, $query_params) {
          try
          {
            $this->result = $this->database->prepare($query);
            if ($query_params != null)
            {
              $this->result->execute($query_params);
            }
            else
            {
              $this->result->execute();
            }
          }
          catch(PDOException $e)
          {
            die();
          }
        }
        public function fetch() {
          return $this->result->fetch();
        }
 }