Objeto de clase mysqli_result no se pudo convertir a cadena

Le ped铆 a Google que me ayudara, no tuve suerte. 馃檨 Aqu铆 est谩 el c贸digo particular que genera el error:

$this->conn->query("UPDATE tz_members SET confirm='yes' WHERE usr='".$uname."'"); 

La funci贸n completa es la siguiente:

  function update_confirm_field($code) { $uname = $this->conn->query("SELECT usr FROM tz_members WHERE confirm='".$code."'"); $this->conn->query("UPDATE tz_members SET confirm='yes' WHERE usr='".$uname."'"); } 

Perd贸name si me he perdido algo est煤pido. 驴Alguien puede decirme qu茅 est谩 causando el problema, por favor?

El problema es que $ uname es un objeto, no una cadena. Debe llamar a uno de los m茅todos de $ uname para acceder a los datos.

  function update_confirm_field($code) { $uname = $this->conn->query("SELECT usr FROM tz_members WHERE confirm='".$code."'"); while ($row = $uname->fetch_assoc()) { $this->conn->query("UPDATE tz_members SET confirm='yes' WHERE usr='".$row["usr"]."'"); } } 

eso deber铆a hacerlo (o una de las soluciones anteriores).

$ uname devuelto por su primera consulta es un objeto mysql_result, no una cadena. debe buscar los datos de ese resultado para usarlos en su segunda consulta.

 while ($row = mysql_fetch_assoc($result)) { echo $row["usr"]; } 

El m茅todo de query devuelve un puntero / objeto del resultado de la consulta, no solo descarga directamente la respuesta. Necesitas hacer algo como list($uname) = $uname->fetch_row;

 $updateQuery = "UPDATE tz_members SET confirm='yes' WHERE usr= (SELECT usr FROM tz_members WHERE confirm='".$code."')"; // Get name and update in the same query $this->conn->query($updateQuery);