Tüm semboller sonra "&"

1 Cevap php

Benim sorgu:

mysql::getInstance()->update('requests', array('response' => mysql_real_escape_string($_POST['status'])), array('secret' => $_POST['secret'])); ?>

I ile dize eklemek için değnek "ve" Eğer sembol, sonra tüm semboller "&" elimden.

Example: string: !"№;%:?*()_+!@#$%^&*()_+

!"№;%:?*()_+!@#$%^: veritabanında sadece görmek

Bunu düzeltmek için?

Herkes gerekmez eğer, işlevini güncelleme:

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: echo mysql::getInstance()->getLastSQL() says:

UPDATE requests SET `response` = '!\"№;%:?*()_ !@#$%^' WHERE `secret` = '52a4ab5f7f3e8491e60b71db7d775ee2'

böylece, mysql sınıfta fonksiyon güncelleme ile sorun?

Slaks, i (, '&', '% 28', $ sorgu) str_replace kullanmanız gerekir; ?

1 Cevap

Muhtemelen & PHP ile ikinci parametre olarak ayrıştırılması sonra her şeyi neden sorgu dizesi, bir çiğ & karakter geçiyoruz. (Bu sizin değişken içine alır önce)

Sen & %26 gibi kaçmak gerekir.

EDIT: Sen sunucuya göndermeden önce kaçmak gerekir. (HTTP isteği yaptığınızda)