mysqli_query()无法正常工作

时间:2014-03-05 18:18:06

标签: php mysqli

我有一个大班级来处理来自表单的数据。

最后一个方法应该将数据插入到数据库中,但它始终以“警告: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;
    }
}

}

Connection 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行。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分: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;
    }
}