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