0

私はこれを試しました:

$cid = mysql_insert_id($this->result);
$this->result = "<div class='alert alert-success'>" . sprintf(_('Successfully added user id <b>%s</b> to the database.'), $cid) . "</div>";

しかし、私はこのエラーしか受け取りません:

警告: mysql_insert_id(): 指定された引数は有効な MySQL-Link リソースではありません

これは関数全体です (挿入されたデータの ID を取得するために、この$cid = mysql_insert_id($this->result);を追加しました):

private function adduser() {

    if (!empty($this->error)) return false;

    $params = array(
        ':user_level' => parent::getOption('default-level'),
        ':name'       => $this->name,
        ':email'      => $this->email,
        ':username'   => $this->username,
        ':password'   => parent::hashPassword($this->password)
    );

    parent::query("INSERT INTO `login_users` (`user_level`, `name`, `email`, `username`, `password`)
                    VALUES (:user_level, :name, :email, :username, :password);", $params);

    $shortcodes = array(
        'site_address'  =>  SITE_PATH,
        'full_name'     =>  $this->name,
        'username'      =>  $this->username,
        'email'         =>  $this->email,
        'password'      =>  $this->password
    );

    $subj = parent::getOption('email-add-user-subj');
    $msg = parent::getOption('email-add-user-msg');

    if(!parent::sendEmail($this->email, $subj, $msg, $shortcodes))
        $this->error = _('ERROR. Mail not sent');
    $cid = mysql_insert_id($this->result);
    $this->result = "<div class='alert alert-success'>" . sprintf(_('Successfully added user <b>%s</b> to the database. Credentials sent to user.'), $cid) . "</div>";

}

これはデータベースへの接続です。

<?php
$host = "xxx"; 
$dbName = "xxx"; 
$dbUser = "xxx"; 
$dbPass = "xxx"; 
?>
4

3 に答える 3

2

mysql_insert_id()クエリ結果ではなく、リソース リンク、つまりデータベース ハンドルを引数として受け取ります。何が$this->result含まれていますか?

于 2012-09-19T07:26:45.303 に答える
1

マニュアルを確認

パラメータmysql_insert_idは Link_Identifier です。しかし、私はあなたが結果を渡していると思います。試す

$cid = mysql_insert_id();

または $this->result は mysql_connect() によって返される接続識別子でなければなりません。

于 2012-09-19T07:28:42.323 に答える
0

すでに PDO を使用しています。次のように切り替えます。

$cid = self::$dbh->lastInsertId(); // PDO for mysql_insert_id
于 2012-09-19T07:33:22.300 に答える