2012-11-14 3 views
0

그래서 등록 양식을 만들려고합니다. 나는 생성자를 사용하여 새로운 MySQLi()와 verifyLogin 함수를 연결하고 mysql_connect()를 addElement 함수와 연결하는 php MySQL 클래스를 만들었다.PHP에서 sql 문을 삽입하십시오. 오류 : 데이터베이스가 선택되지 않았습니다.

오류가 내 addElement 함수에서 발생하지만 SQL 문은 올바르게 기록되지만 데이터베이스에 연결하지 않는 것 같습니다. 모든 이름이 정확한지 확인했습니다. 어떤 아이디어?

<?php 

class MySQL { 

private $connection; 
private $conn; 
private $databaseName; 

function __construct($dbServer, $dbUser, $dbPassword, $dbName) { 
    $this->connection = new MySQLi($dbServer, $dbUser, $dbPassword, $dbName) 
     or die('PROBLEM CONNECTING TO DATABASE'); 

    $this->conn = mysql_connect($dbServer, $dbUser, $dbPassword); 
     echo $this->conn; 

    $databaseName = $dbName; 
} 

function verifyLogin($table, $email, $password) { 

    $query = "SELECT * 
      FROM ? 
      WHERE email = ? 
      AND password = ? 
      LIMIT 1"; 

    if($statement = $this->connection->prepare($query)) { 
     $statement->bind_param('sss', $table, $email, $password); 
     $statement->execute(); 

     if($statement->fetch()) { 
      $statement->close(); 
      return true;  
     } 
     else { 
      return false; 
     } 
    } 

} 

function addElement($table, $firstName, $lastName, $email, $mobile, $password, 
         $faculty, $campus) { 


    $query = "INSERT INTO $table (first_name, last_name, email, mobile, password, faculty, campus_location) 
      VALUES('$firstName', '$lastName','$email','$mobile', 
      '$password','$faculty','$campus');"; 
    echo $query; 

    mysql_select_db($this->databaseName, $this->conn); 

    if(!mysql_query($query)) { 
     die('Error: ' . mysql_error()); 
    } 

    mysql_close($this->connection); 
} 


} 

?> 
+2

을 ??? – prodigitalson

+0

@prodigitalson, 나는 그것이 문제의 일부라고 생각합니다 :) –

+0

연결을 의미합니까? 튜토리얼 때문에 MySQLi를 사용했는데 INSERT SQL 문에 사용할 때 작동하지 않아 w3 학교에서이 메서드를 사용했습니다. – jvaity

답변

2

가 MySQLi에서 데이터베이스를 선택하려면, 당신과 같이 선택해야합니다

$db = new mysqli("localhost", "my_user", "my_password", "database_name"); 

또는

$db = new mysqli("localhost", "my_user", "my_password"); 
$db->select_db('database_name'); 

MySQL의 반대 :

$db = mysql_connect('localhost', 'my_user', 'my_password'); 
$db_selected = mysql_select_db('database_name', $db); 

MySQLi : http://www.php.net/manual/en/mysqli.select-db.php

MySQL은 : 왜 당신은 두 개의 서로 다른 확장자를 사용하는 http://www.php.net/manual/en/function.mysql-select-db.php

+1

mysqli의 "test"매개 변수가 데이터베이스 이름이 아닌가? 그렇다면 나중에 select_db 메소드를 사용하지 않을 것입니까? – jvaity

+0

당신은 틀린 품목입니다. 답변을 업데이트했습니다. 좋은 캐치. –

관련 문제