Php 什么';指定和使用mysqli_insert_id()的返回类型时出错?

Php 什么';指定和使用mysqli_insert_id()的返回类型时出错?,php,mysql,Php,Mysql,错误显示在这一行: $query1="UPDATE `users` SET password=''.md5(md5(mysqli_insert_id($link).$pass)).'' WHERE id=''.mysqli_insert_id($link).'' "; 错误如下: 可恢复的致命错误:类mysqli的对象无法转换为字符串 在第30行的/home/vhosts/nagarajhegde41.freevar.com/DiaryHome.php中

错误显示在这一行:

$query1="UPDATE `users` 
         SET password=''.md5(md5(mysqli_insert_id($link).$pass)).'' 
         WHERE id=''.mysqli_insert_id($link).'' ";
错误如下:

可恢复的致命错误:类mysqli的对象无法转换为字符串 在第30行的/home/vhosts/nagarajhegde41.freevar.com/DiaryHome.php中

您依赖于在文本中执行代码,但语法不正确。我的建议是你甚至不要尝试。至少可以说,用字符串包装代码很不方便。看看使用常规代码语句有多容易:

$query1 = 'UPDATE users
    SET password = ?
    WHERE id = ?';
$params1 = [
    md5(md5(mysqli_insert_id($link).$pass)),
    mysqli_insert_id($link),
];
这样您就可以免费获得:

  • 更简单的语法
  • 可读代码
  • 在所有PHP编辑器(即使是免费的)中正确的语法突出显示和代码完成
  • 正确的错误报告,以及有用的行号信息
  • 针对SQL注入的保护
另外,您可能需要检查。

您依赖于在文本中执行代码,但语法不正确。我的建议是你甚至不要尝试。至少可以说,用字符串包装代码很不方便。看看使用常规代码语句有多容易:

$query1 = 'UPDATE users
    SET password = ?
    WHERE id = ?';
$params1 = [
    md5(md5(mysqli_insert_id($link).$pass)),
    mysqli_insert_id($link),
];
这样您就可以免费获得:

  • 更简单的语法
  • 可读代码
  • 在所有PHP编辑器(即使是免费的)中正确的语法突出显示和代码完成
  • 正确的错误报告,以及有用的行号信息
  • 针对SQL注入的保护

另外,您可能需要检查。

您的函数在引号中。它们不会运行。您的字符串用双引号括起来,但您正在尝试终止它并用单
“更新`users`SET password=''。
您的函数都在引号中。它们不会运行。您的字符串用双引号括起来,但您正在尝试终止它并用单个
“UPDATE`users`SET password=''”连接。
但是,在您建议传递的整个字符串中,函数(如mysqli\u real\u escape\u string()或mysqli\u insert\u id()如何工作?如果我想使用,我必须使用concat,对吗?抱歉,我不能理解你的后续问题。
是,如果你是这个意思的话。但是函数在你建议传递的整个字符串中如何工作,像mysqli\u real\u escape\u string()或mysqli\u insert\u id()之类的函数?如果我想使用,我必须使用concat,对吗?对不起,我不明白你的后续问题。
就是这个,如果你是这个意思的话。