2014-03-05 84 views
-2

我有一個很大的類來處理來自表單的數據。mysqli_query()不能正常工作

最後一個方法應該將數據插入到數據庫中,但它總是以結束「警告:mysqli_query()預計參數1是mysqli的,對象給出......等等等等」

我發現了許多線索這一點,但沒有幫我解決,我發佈DB類的代碼:

class connessionedb { 

// parametri per la connessione al database 
private $nomehost = "host"; 
private $nomeuser = "user"; 
private $password = "pass"; 
private $database = "database"; 

// funzione per la connessione a MySQL 
public function Connessione() { 
    $conn = new mysqli($this->nomehost, $this->nomeuser, $this->password, $this->database); 
    if ($conn->connect_errno) { 
     echo "Failed to connect to MySQL: " . $conn->connect_error; 
    } else { 

     echo "connessione stabilita"; 
     return $conn; 
    } 
} 

}

連接properli對我的作品,我測試了它。

現在它調用的連接,並插入最後法(現在該查詢是在很短的形式,但是我有一個43場形成來管理):

公共函數InsertDB(){

$connetti = new connessionedb(); 
$connetti->Connessione(); 

    $query = "INSERT into anagrafica (old_id, 

      VALUES     ($this->old_id)"; 

    $inserisci = mysqli_query($connetti, $query); 
    if (!$inserisci) { 
     die('Error:' . mysqli_error($connetti)); 
    } else { 
     return $this->inserito = true; 
    } 
} 

和PHP實現文件(尚未完成,但足以在理論上足以插入數據):

<?php 



session_start(); 
require_once '/classes/class.connessionedb.php'; 
require_once '/classes/class.IscrittiFormCheck'; 
header('Content-type: text/html; charset=utf-8'); 
$form = new Iscrittiformcheck(); 

if (!$form->checkAll()) { 
    exit(); 
} else { 



    $form->InsertDB(); 


} 
?> 

結果是:

Tutti i campi del form sono stati inviati correttamente。

CONNESSIONE stabilita 警告:mysqli_query()預計參數1是mysqli的,對象在C中給出:etcetc在線路407

警告:mysqli_error()預計參數1是mysqli的,對象在C中給出:etcetc在管線409

線是以下兩種:

$inserisci = mysqli_query($connetti, $query); 
[---] 
die('Error:' . mysqli_error($connetti)); 

其是2行,其中i應通過連接標識。

非常感謝您的幫助!

+0

僅供參考:在一個類中包裝一些代碼並不奇蹟般地使它成​​爲「oop」。 –

+0

我知道,感謝您的幫助。 – CodeClimber

回答

0

$ connetti只是你的情況下的一個對象,而不是mysqli的對象。您使用函數Connessione()獲取mysql對象,因此您需要將它分配給使用sql查詢的變量。

public function InsertDB() { 
    $connetti = new connessionedb(); 
    $dbc = $connetti->Connessione(); 

    $query = "INSERT into anagrafica (old_id) VALUES (".$this->old_id.")"; 

    $inserisci = mysqli_query($dbc, $query); 
    if (!$inserisci) { 
     die('Error:' . mysqli_error($dbc)); 
    } else { 
     return $this->inserito = true; 
    } 
} 
+0

我試過了,仍然不適合我......我不知道爲什麼,但聽起來正確。 – CodeClimber

+0

編輯我的功能,好像查詢不對。 – sunshinejr

+0

現在起作用了,Netbeans在命令前面提出了一個反斜槓(I.E \ mysqli_query)。我只是不知道爲什麼,但它有效。我正在修復查詢來完成它,並讓腳本正常工作,但該塊現在已經過去了。你是否想知道反斜槓如何解決這種情況? – CodeClimber