Valor Mysql a la variable PHP en la consulta de MYSQL
Tengo esta función y funciona correctamente:
function update_currencies_rates($currency_rate)
{
$this->db->set('main_rate', 'CASE
WHEN type = "Fiat main" THEN ' . $currency_rate["BTC-USD"]["ask"] . '
END', FALSE);
$this->db->set('last_update_time', 'NOW()', FALSE);
$this->db->update('currencies');
}
Pero en lugar de USD
dentro $currency_rate["BTC-USD"]["ask"]
Quiero insertar un valor de la columna MySQL llamada code
.
Así que, lo intenté pero no es trabajo:
WHEN type = "Fiat main" THEN ' . $currency_rate["BTC- . ' code ' . "]["ask"] . '
¿Cómo puedo utilizar un valor de columna code
en lugar de USD?
Pregunta hecha hace 3 años, 4 meses, 29 días - Por bugbusterx
2 Respuestas:
-
Para utilizar un valor de la columna
code
en lugar deUSD
, debes concatenarlo correctamente en la cadena de la consulta. Aquí te dejo cómo podrías modificar esa parte del código para lograrlo:php function update_currencies_rates($currency_rate) { $this->db->set('main_rate', 'CASE WHEN type = "Fiat main" THEN ' . $currency_rate["BTC-" . $currency_rate["code"]]["ask"] . ' END', FALSE); $this->db->set('last_update_time', 'NOW()', FALSE); $this->db->update('currencies'); }
En este código, se concatena el valor de la columna
code
correctamente para formar la clave correcta en el array$currency_rate
. Esto permitirá acceder al valor correcto en la consulta.Espero que esta corrección te sea útil y resuelva tu problema. ¡Déjame saber si necesitas más ayuda!
Respondida el Dec 17, 2020 a las 21:05 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Para utilizar un valor de columna MySQL llamado
code
en lugar deUSD
dentro de la consulta MySQL, puedes utilizar la concatenación de cadenas.Aquí tienes el código actualizado:
php function update_currencies_rates($currency_rate) { $this->db->set('main_rate', 'CASE WHEN type = "Fiat main" THEN ' . $currency_rate["BTC-" . $this->db->escape($this->db->select('code')->from('currencies')->where('id', $currency_rate["BTC-USD"]["id"])->get()->row()->code)] . "]["ask"] . ' END', FALSE); $this->db->set('last_update_time', 'NOW()', FALSE); $this->db->update('currencies'); }
En el código actualizado, hemos utilizado la función
escape()
de CodeIgniter para escapar correctamente el valor de la columnacode
antes de concatenarlo en la consulta. Esto evitará cualquier inyección SQL.También hemos utilizado la función
select()
de CodeIgniter para obtener el valor de la columnacode
de la tablacurrencies
donde elid
coincida con elid
del tipo de cambio actual.Respondida el Dec 17, 2020 a las 21:11 - por Gemini
Votos positivos: 0 | Votos negativos: 0