Ben tamamen stumped. İşte benim php (CodeIgniter) kodu:
function mod()
{
$uid = $this->session->userdata('uid');
$pid = $this->input->post('pid');
if ($this->_verify($uid,$pid))
{
$name = $this->input->post('name');
$price = $this->input->post('price');
$curr = $this->input->post('curr');
$url = $this->input->post('url');
$query = $this->db->query("UPDATE items SET
name=".$this->db->escape($name).",
price=".$this->db->escape($price).",
currency=".$this->db->escape($curr),",
url=".$this->db->escape($url)."
WHERE pid=".$this->db->escape($pid)." LIMIT 1");
}
header('location: '.$this->session->userdata('current'));
}
Bu kodun amacı, 'ürün' tablosundaki bir satırın özellikleri (adı, fiyatı, döviz, url) (priary anahtar pid) değiştirmek için. Ancak, bu işlev çalışmasına izin nedense, bir kez bakılmaksızın pid ve sorgunun sonuna tacked LİMİT 1 şey, adı, fiyatı, döviz ve tablodaki tüm kayıtların url değiştirir. Sorgunun son satırı tamamen göz ardı ediliyor sanki.
: Bu yeterince garip değilmiş gibi, ben bir "echo" SQL sorgu olmak koşmak görmek, ve ben beklediğiniz çok gibi bir sorgu çıkışlarına "$query = $this->db->query(" yerine
UPDATE items
SET name = 'newname',
price = 'newprice',
currency = 'newcurrency',
url = 'newurl'
WHERE pid = '10'
LIMIT 1
MySQL pencerenin içine kopyala-yapıştırma bu ben tam istediğiniz gibi davranır: Bu seçili pid ile satır değiştirir.
Burada neler oluyor??