我正在尝试从之前的查询中提取自动增加的ID。我收到异常: 1305功能THE_NAME_OF_MY_DATABASE.mysqli_insert_id不存在。
我可以在哪里更改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);
}
答案 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