在哪里可以找出函数是否存在?

时间:2013-06-18 12:43:56

标签: php mysql database mysqli

我正在尝试从之前的查询中提取自动增加的ID。我收到异常: 1305功能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);
    }
    

2 个答案:

答案 0 :(得分:2)

根据您的代码:

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

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

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

因此,您需要mysqli_insert_id($mysql)$mysql->insert_id

那应该可以解决问题。

答案 1 :(得分:1)

好吧,你正在尝试将PhP函数用于SQL查询......它无法正常工作!

以下是关于如何在PhP中使用该功能的一些解释:http://www.w3schools.com/php/func_mysqli_insert_id.asp