Ma requête: symboleTous les symboles après « et » dépouillé
mysql::getInstance()->update('requests', array('response' => mysql_real_escape_string($_POST['status'])), array('secret' => $_POST['secret'])); ?>
Si je baguette magique pour ajouter la chaîne avec « & », tous les symboles après dépouillèrent « & ». !
Exemple: chaîne: "№;% :?() _ + @ # $%^&() _ +
dans la base de données que je ne vois que:! " №; %:? *() _ +! @ # $%^
Comment résoudre ce problème?
fonction de mise à jour, si quelqu'un besoin:
function update($table, $updateList, $whereConditions)
{
$updateQuery = '';
foreach ($updateList as $key => $newValue) {
if (!is_numeric($newValue)) {
$newValue = "'" . $newValue . "'";
}
if (strlen($updateQuery) == 0) {
$updateQuery .= '`' . $key . '` = ' . $newValue;
} else {
$updateQuery .= ', `' . $key . '` = ' . $newValue;
}
}
return $this->query('UPDATE ' . $table . ' SET ' . $updateQuery . $this->buildWhereClause($whereConditions));
}
UPD: écho mysql :: getInstance() -> getLastSQL() dit:
UPDATE requests SET `response` = '!\"№;%:?*()_ [email protected]#$%^' WHERE `secret` = '52a4ab5f7f3e8491e60b71db7d775ee2'
donc, problème avec la mise à jour de la fonction dans une base MySQL classe?
Slaks, je dois utiliser str_replace ('&', '% 28', $ query); ?
Si vous échoez '$ _POST ['status']', que voyez-vous? – SLaks
En tant que sidenote: Votre routine de mise à jour devrait assurer l'échappement des chaînes newValue, pas l'appelant. – hurikhan77
hurikhan77, s'il vous plaît, puis-je regarder exemple de code? – user300413