从 MySQL 到 mysqli 的转换不起作用

Posted

技术标签:

【中文标题】从 MySQL 到 mysqli 的转换不起作用【英文标题】:Conversion from MySQL to mysqli not working 【发布时间】:2014-08-18 02:35:33 【问题描述】:

我正在将现有的 mysql 转换为 mysqli

但我无法正确获取这段代码

mysql_query("INSERT INTO `sendmsg`(`sendname`, `recievename`, `subject`, `body` , `mdate`, `mtime`) VALUES ('$sendname','$recievename','$subject','$body','$msgdate','$msgtime')");
$new_id = mysql_insert_id();
mysql_query("INSERT INTO `recievemsg`(`msgid`, `sendname`, `recievename`, `subject`, `body`, `mdate`, `mtime`, `status`) VALUES ($new_id,'$sendname','$recievename','$subject','$body','$msgdate','$msgtime','UNREAD')");

下面给出了我尝试的方法,但没有奏效

$mysqli->query("INSERT INTO `sendmsg`(`sendname`, `recievename`, `subject`, `body` , `mdate`, `mtime`) VALUES ('$sendname','$recievename','$subject','$body','$msgdate','$msgtime')");
$new_id = mysqli_insert_id();
$mysqli->query("INSERT INTO `recievemsg`(`msgid`, `sendname`, `recievename`, `subject`, `body`, `mdate`, `mtime`, `status`) VALUES ($new_id,'$sendname','$recievename','$subject','$body','$msgdate','$msgtime','UNREAD')");

问题在于$new_id = mysqli_insert_id(); 语句,因为第一个查询正在执行

【问题讨论】:

既然您要升级到mysqli,您应该花时间熟悉一下参数绑定和准备好的语句。 过程风格的mysqli_*函数需要传递给它们的连接变量,这与mysql_*mysqli的面向对象版本不同 你能给我一个关于如何从 mysql 转换为 mysqli 的详细教程的链接。我找不到一个好的 php manual 拥有您需要知道的一切 这能回答你的问题吗? How to change mysql to mysqli? 【参考方案1】:

对于 mysqli 面向对象的样式来获取最后插入的 id 使用这个

$mysqli->insert_id ;

http://www.php.net/manual/en/mysqli.insert-id.php

所以你的查询将是

$mysqli->query("INSERT INTO `sendmsg`(`sendname`, `recievename`, `subject`, `body` , `mdate`, `mtime`) VALUES ('$sendname','$recievename','$subject','$body','$msgdate','$msgtime')");

$new_id = $mysqli->insert_id;

$mysqli->query("INSERT INTO `recievemsg`(`msgid`, `sendname`, `recievename`, `subject`, `body`, `mdate`, `mtime`, `status`) VALUES ($new_id,'$sendname','$recievename','$subject','$body','$msgdate','$msgtime','UNREAD')");

【讨论】:

所以我只需要在第二个查询的末尾插入它?它将如何插入到适当的列中。如果您不忙,请重写我提供的查询 所以在第一个查询之后获取最后插入的 id 并在第二个查询中使用它。

以上是关于从 MySQL 到 mysqli 的转换不起作用的主要内容,如果未能解决你的问题,请参考以下文章

mysqli连接在函数内部不起作用? [复制]

缺少扩展 mysqli,phpmyadmin 不起作用

缺少扩展 mysqli,phpmyadmin 不起作用

从 MYSQL 更新到 MYSQLI [重复]

Mysqli回滚不起作用

PHP mysqli插入不起作用,但没有给出任何错误