2011-03-26 2 views
0

J'ai récemment changé d'utiliser mysql en msqli, puisque les fonctions CRUD ont toutes cessé de fonctionner correctement. S'il vous plaît quelqu'un peut me diriger dans la bonne direction. Voici mon code. Désolé pour mon mauvais anglais.convertir de mysql en problème mysqli

public function create() { 
global $database; 
$attributes = $this->sanitised_attributes(); 
$sql = "INSERT INTO ".self::$table_name."("; 
$sql .= join(", ", array_keys($attributes)); 
$sql .= ") VALUES ('"; 
$sql .= join("', '", array_values($attributes)); 
$sql .= "')"; 
if($database->query($sql)) { 
$this->id = $database->insert_id(); 
return true; 
} else {  
return false; 
} 

} 

Voici la classe

class mysqliDatabase { 

private $connection; 
public $last_query; 
private $magic_quotes_active; 
private $real_escape_string_exists; 

    function __construct() { 
    $this->open_connection(); 
    $this->magic_quotes_active = get_magic_quotes_gpc(); 
    $this->real_escape_string_exists = function_exists("mysqli_real_escape_string"); 
    } 

    public function open_connection(){ 
    $this->connection = new mysqli(DB_HOST,DB_USER,DB_PASSWORD); 
    if(!$this->connection) { 
    die("Database connection failed: " . mysqli_error()); 
     } else { 
    $db_select = mysqli_select_db($this->connection,'*****'); 
    if (!$db_select) { 
    die("Database selection failed: " . mysqli_error());  
    } else { echo "connected";} 
    } 
    } 


    public function close_connection(){ 
    if(isset($this->connection)) { 
    mysqli_close($this->connection); 
    unset($this->connection); 
    } 
} 

    public function query($sql) { 
    $this->last_query = $sql; 
    $result = mysqli_real_query($this->connection, $sql); 
    $this->confirm_query($result); 
    return $result; 
    } 

    public function escape_value($value) { 

    if($this->real_escape_string_exists) { 
    //undo any magic quote effects so mysqli_real_escape can do the work 
    if($this->magic_quotes_active){ $value = stripslashes($value);} 
    $value = mysqli_escape_string($this->connection, $value); 
    } else { 
    //if magic quotes aren't already on then add slashes manually 
    if(!$this->magic_quotes_active) { $value = addslashes($value); 
    } 
    //if magic quotes are active, then the slashes already exist 
    } 
    return $value; 
} 

    public function fetch_array($result_set) { 
    return mysqli_fetch_array($result_set); 
} 

    public function num_rows($result_set) { 
    return mysqli_num_rows($result_set); 
} 

    public function insert_id() { 
    //get the last id inserted over the current db connection 
    return mysqli_insert_id($this->connection); 
    } 

    public function affected_rows() { 
    return mysqli_affected_rows($this->connection); 
    } 

    private function confirm_query($result) { 
    if(!$result) { 
    $output = "Database query failed " . mysqli_error($this->connection) . "<br 
    /><br />"; 
    $output .= "last SQL query: " . $this->last_query; 
    die($output); 
} 
} 

Répondre

0

Le problème n'est pas dans cette fonction, mais dans la classe de base de données. Vous auriez besoin de partager celui-ci pour pouvoir obtenir de l'aide.

+0

voici la classe – paynod

+0

@Jinixon où ici? – Tommy