这是我的密码
$conn = mysql_connect($serverName, $username, $password)
or die("Unable to connect to MySQL");
$selected = mysql_select_db($databaseName,$conn)
or die("Could not find the database");
$result = mysql_query("INSERT INTO `user` () VALUES ()");
return mysqli_insert_id($result)这是个例外
Warning: mysqli_insert_id() expects parameter 1 to be mysqli, boolean given in C:\xampp2\htdocs\XXX\controllers\User.php on line 24第24行是return mysqli_insert_id($result)
发布于 2014-12-11 15:37:24
在mysqli中使用mysql。不能同时使用,必须选择要使用的MySQL扩展。
如果mysqli:
尝试使用mysqli连接和mysqli选择db
如果mysql:
使用id()而不是mysqli_insert_id()
我会亲自使用PDO,mysql被降级了:
try
{
// Connect to your database
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Put your insert statement
$sql = "INSERT INTO `user` () VALUES ()";
// use exec() because no results are returned
$conn->exec($sql);
$last_id = $conn->lastInsertId();
echo "New record created successfully. Last inserted ID is: " . $last_id;
}
catch(PDOException $e)
{
echo $sql . "<br />" . $e->getMessage();
}更新: MySQL扩展:已被删除,不再可用
发布于 2014-12-11 15:38:19
对于所使用的MySQL扩展,您必须保持一致。如果使用的是mysql扩展,则必须使用mysql_insert_id(),而不是mysqli_insert_id()。
如果您重写所有代码以使用mysqli或PDO扩展会更好,因为不推荐使用mysql扩展。但这并不是一种替代,它的语法有点不同。
发布于 2014-12-11 15:39:20
您可以将mysql与mysqli混合使用,错误消息中提到的boolean是FALSE。您的INSERT查询失败,因为它没有提供要插入的任何值。它在()上有语法错误。
试试这个:
$result = mysql_query("INSERT INTO `user` (`name`) VALUES ('John Doe')");
return mysql_insert_id($result);不使用使用mysql_*函数。mysql扩展是自PHP5.5以来被弃用,将来将被删除。使用mysqli或PDO。
https://stackoverflow.com/questions/27426593
复制相似问题