2014-03-05 36 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