Bu MySQL Query ile ilgili bir sorun var mı?

6 Cevap php
public function create() {


        echo $this->equipment->getCatId() . "<br/>";
        echo $this->equipment->getName() . "<br/>";
        echo $this->equipment->getYear() . "<br/>";
        echo $this->equipment->getManufacturer() . "<br/>";
        echo $this->equipment->getModel() . "<br/>";
        echo $this->equipment->getPrice() . "<br/>";
        echo $this->equipment->getLocation() . "<br/>";
        echo $this->equipment->getCondition() . "<br/>";
        echo $this->equipment->getStockNum() . "<br/>";
        echo $this->equipment->getInformation() . "<br/>";
        echo $this->equipment->getDescription() . "<br/><br/>";


        $db = Connect::connect();
        $current_time = date('y M d');
        $query = "INSERT INTO equipment (cat_id, name, year, manufacturer, model, price, location, condition,
                                         stock_num, information, description, created, modified)

                                         VALUES

                                        ({$this->equipment->getCatId()}, {$this->equipment->getName()}, {$this->equipment->getYear()},
                                         {$this->equipment->getManufacturer()}, {$this->equipment->getModel()}, {$this->equipment->getPrice()},
                                         {$this->equipment->getLocation()}, {$this->equipment->getCondition()}, {$this->equipment->getStockNum()},
                                         {$this->equipment->getInformation()}, {$this->equipment->getDescription()}, '$current_time', '$current_time')";

        $result = $db->query($query);

        return $db->insert_id;

    }
  • Veritabanı şemasını uygun üst tüm ekran geçerli verilere yankılanırken.
  • Hiçbir bağlantı hataları vardır

Herhangi bir fikir?

Şimdiden teşekkürler!

İşte echo'ed sorgu

Ekipman (cat_id, isim, yıl, üretici, model, fiyat, yer, durum, stock_num, bilgi, açıklama, oluşturulan değiştirilmiş) VALUES (1, 'r', 1, 'sdf', 'sdf', '2 INSERT INTO ',' d ',' d ', '3', 'asdfasdfdf', 'df', '10 Mayıs 10 ', '10 Mayıs 10')

MySQL veriyor: # 1064 - Kendi SQL sözdizimi bir hata var; line 1 yakınlarındaki 'modifiye yaratılan durum, stock_num, bilgi, açıklama,,) VALUES (1,' r 'kullanmak doğru sözdizimi için MySQL sunucu sürümü karşılık kılavuzunu kontrol

id int(11) unsigned NO PRI NULL auto_increment Edit Delete cat_id int(11) unsigned NO NULL
Edit Delete prod_name varchar(255) YES NULL
Edit Delete prod_year varchar(10) YES NULL
Edit Delete manufacturer varchar(255) YES NULL
Edit Delete model varchar(255) YES NULL
Edit Delete price varchar(10) YES NULL
Edit Delete location varchar(255) YES NULL
Edit Delete condition varchar(25) YES NULL
Edit Delete stock_num varchar(128) YES NULL
Edit Delete information text YES NULL
Edit Delete description text YES NULL
Edit Delete created varchar(20) YES NULL
Edit Delete modified varchar(20) YES NULL

Sorgu: ekipmanının (cat_id, prod_name, prod_year, üretici, model, fiyat, yer, durum, stock_num, bilgi, açıklama, oluşturulan değiştirilmiş) VALUES (1, 'asdf', '234 ',' adf ',' asdf INSERT INTO ', '34', 'asdf', 'asdf', '234 ',' asdf ',' asdf ', '10 Mayıs 10', '10 Mayıs 10 ')

İşte birisi bu sorunu çoğaltarak denemek istediği durumunda PhpMyAdmin'de gelen SQL ihracat: http://pastie.org/954206

BLEHBLEHSDFOHSE - Yani görünüşe göre, 'durum' da ayrılmış bir sözcüktür ... o çalışmaya başladı, bazı ters tırnakların attı.

6 Cevap

YIL MySQL ayrılmış bir sözcüktür. Bunu kullanmak için gidiyoruz eğer, backtick için ihtiyacımız olacak (yani `year`)

Konumu, bilgi ve açıklama tırnak eksik dizeleri varsayarsak.

INSERT INTO equipment (cat_id, name, year, manufacturer, model, price, location, condition,
                                         stock_num, information, description, created, modified)

                                         VALUES

                                        ({$this->equipment->getCatId()}, {$this->equipment->getName()}, {$this->equipment->getYear()},
                                         '{$this->equipment->getManufacturer()}', {$this->equipment->getModel()}, {$this->equipment->getPrice()},
                                         '{$this->equipment->getLocation()}', {$this->equipment->getCondition()}, {$this->equipment->getStockNum()},
                                         '{$this->equipment->getInformation()}', '{$this->equipment->getDescription()}', '$current_time', '$current_time')";

Varchar, char ve metin alanları eklemek için çevrelerindeki tırnak gerekir. SQL sorgusu echo ve bu oluyor edin.

kadarıyla ben bu noktada görmek gibi, senin sorunun hiçbir tırnak yıl bir alan oldu ...

INSERT INTO equipment (cat_id, name, year, manufacturer, model, price, location, condition, stock_num, information, description, created, modified) VALUES (1, 'r', 1, 'sdf', 'sdf', '2', 'd', 'd', '3', 'asdfasdfdf', 'df', '10 May 10', '10 May 10')

Burada, sorun tırnak İLE cat_id olduğunu

Query: INSERT INTO equipment (cat_id, name, year, manufacturer, model, price, location, condition, stock_num, information, description, created, modified) VALUES ('1', 'asdf', '234', 'adf', 'asdf', '34', 'asdf', 'asdf', '234', 'asdf', 'asdf', '10 May 10', '10 May 10')

BLEHBLEHSDFOHSE - Yani görünüşe göre, 'durum' da ayrılmış bir sözcüktür ... o çalışmaya başladı, bazı ters tırnakların attı.

Mysql_query kullanarak durdurun () ve mysqli'nin geçmek ve prepared statements, daha sonra SQL dize bütün bu geniş OOP gerekmez. Bu gibi temiz olmazdı:

$query = 'INSERT INTO table (id,name,age) VALUES (?,?,?)';