2014-04-22 39 views
0

我得到这个PHP致命错误:调用一个成员函数查询()一个非对象在第25行

Fatal error: Call to a member function query() on a non-object in

C:\xampp\htdocs\University\createTables.php on line 25

createTables.php

<?php 
require_once("connect.php"); 
$members_table_stmt = "CREATE TABLE IF NOT EXISTS members (
    id INT NOT NULL AUTO_INCREMENT, 
    ext_id TEXT, 
    username VARCHAR(16) NOT NULL, 
    email VARCHAR(255) NOT NULL, 
    password TEXT, 
    lastlog DATETIME NOT NULL, 
    signup_date DATETIME NOT NULL, 
    activated ENUM('0','1') NOT NULL DEFAULT '0', 
    avatar VARCHAR(255), 
    banner VARCHAR(255), 
    full_name VARCHAR(255), 
    country VARCHAR(255), 
    state VARCHAR(255), 
    city VARCHAR(255), 
    gender VARCHAR(12), 
    birthday VARCHAR(255), 
    ipaddress VARCHAR(255), 
    PRIMARY KEY (id), 
    UNIQUE KEY username (username,email) 

)"; 
if($db->query($members_table_stmt)){ 
    echo "<h2>Member Table Created Yay!</h2>"; 
}else{ 
    echo "<h2>There was an error creating the members table. Go back and check your code</h2>"; 
} 
$activation_tbl_stmt = "CREATE TABLE IF NOT EXISTS activate (
    id INT NOT NULL AUTO_INCREMENT, 
    user VARCHAR(255) NOT NULL, 
    token VARCHAR(255) NOT NULL, 
    PRIMARY KEY (id) 

)"; 
if($db->query($activation_tbl_stmt)){ 
    echo "<h2>Activation Table Created Yay!</h2>"; 
}else{ 
    echo "<h2>There was an error creating the activation table. Go back and check your code</h2>"; 
}?> 

连接。 php

<?php 
// Usualy "localhost" but could be different on different servers 
$db_host = "localhost"; 
// Place the username for the MySQL database here 
$db_username = "root"; 
// Place the password for the MySQL database here 
$db_pass = ""; 
// Place the name for the MySQL database here 
$db_name = "enseignant"; 

try{ 
$db = new DbConnector(); 
    $db = new PDO('mysql:host='.$db_host.';dbname='.$db_name,$db_username,$db_pass); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch(PDOException $e){ 
    echo $e->getMessage(); 
    exit(); 
}?> 
+0

这是相当自我解释。如果($ db-> query($ members_table_stmt)成员函数'query'不能在'$ db'上实例化,因为这个变量是'empty'。 – Ohgodwhy

+0

所以对不起,我不想粗鲁这行:if )){ – user3558634

+0

我是这个领域的新手,你能给我一个解决方案谢谢! – user3558634

回答

0

试着准备查询代替:

$stmt = $db->prepare($members_table_stmt); 
if($stmt->execute()){ 
    //success! 
}else{ 
    //fail 
} 
+0

抱歉我的不好,我不打算在一些论坛上找到这个解决方案,我试过了,甚至没有$ db = new DbConnector();仍然有相同的问题 – user3558634

+0

看到我的编辑,请避免误导性的代码,它只是使它很难帮助您 – meda

+0

所以对不起,好吧,你要我删除尝试和赶上,或者你必须把这个代码放在试试谢谢! – user3558634

相关问题