0

我正在尝试从先前的查询中提取自动递增的 id。我收到异常:1305 FUNCTION THE_NAME_OF_MY_DATABASE.mysqli_insert_id 不存在。

  1. 这不可能是语法错误吗?
  2. 我在哪里可以更改 mysql 以具有此功能或需要改写什么?我用谷歌搜索了这个,发现反应不一。

    $action = isset( $_POST['action'] ) ? $_POST['action'] : "";
    if($action == "create"){
    //write the query for character creation
    
    $query = "(all of my stuff that I'm putting into another database that works)";
    
    $query1 = "INSERT INTO playerskill
                    (skillid, charid)
    
                    VALUES ('".$_POST['skills']."',mysqli_insert_id());
                    ";
    //what happens when successful or not
    if( $mysqli->query($query) ) {
        echo $query ;
        echo "Character was approved.";
    }else{
        echo "Database Error: Unable to update record.";
        echo $mysqli->errno;
        echo mysqli_error($mysqli);
    }
    }
    
    //what happens when successful or not
    if( $mysqli->query($query1) ) {
        echo $query1 ;
        echo "Character was approved.";
    }else{
        echo "Database Error: Unable to update record.";
        echo $mysqli->errno;
        echo mysqli_error($mysqli);
    }
    
4

2 回答 2

2

根据您的代码:

$query1 = "INSERT INTO playerskill (skillid, charid)
           VALUES ('".$_POST['skills']."',mysqli_insert_id());";

请注意,mysqli_insert_id()与所有其他mysqli函数一样,您需要指定 DB 连接变量。

我注意到您的大部分代码都使用 mysqli 的 OO 语法,这意味着连接变量被指定为对象名称。在mysqli_insert_id()此处的情况下,您使用过程语法调用它,在这种情况下,您必须将连接 var 指定为第一个参数。

所以你需要mysqli_insert_id($mysql)要么$mysql->insert_id

那应该可以解决问题。

于 2013-06-18T12:51:13.747 回答
1

好吧,您正在尝试在 SQL 查询中使用 PhP 函数……它不起作用!

这里有一些关于如何在 PhP 中使用该函数的解释:http: //www.w3schools.com/php/func_mysqli_insert_id.asp

于 2013-06-18T12:45:57.250 回答