Selamlar, Ben aşağıdaki sorunu yaşıyorum:
Ben mysqli_multi_query işlevi, bunların hiçbiri yürütülür kullanarak sorgular INTO birkaç INSERT yürütme girişiminde ve ben bir standart aldığınızda hata "Kendi SQL sözdizimi bir hata var", ama aynı dize almak zaman işleve geçirilen ve PHPMyAdmin yapıştırın ve çalıştırmak, sorunsuz çalışıyor!
İşte yürütmek çalışılıyor sorgular şunlardır:
INSERT INTO production VALUES( 120, 103, 10, 0, 0 );
INSERT INTO production VALUES( 120, 107, 5, 1, 0 );
INSERT INTO production VALUES( 120, 106, 7, 2, 0 );
INSERT INTO production VALUES( 120, 103, 20, 0, 1 );
Bu noktalı virgülden sonra bir boşluk ile ayrılmış tek bir dize, vardır.
Burada kodda ne var:
$querytext = $queries // Get all the queries
$query_result = mysqli_multi_query( $this->_connection, $querytext );
if( mysqli_errno($this->_connection) > 0)
echo mysqli_error($this->_connection);
var_dump( $querytext );
var_dump( $query_result );
Bu kod sonuçları yürütülüyor:
Eğer SQL sözdizimi bir hata var; üretim değerleri INTO yakın 'INSERT kullanma hakkı sözdizimi için MySQL sunucu sürümü karşılık kılavuzunu kontrol (120, 107, 5, 1, 0); Line 1 üretim DEĞER 'INSERT INTO
INSERT INTO üretim değerleri (120, 107, 5, 1, 0);; string (210) "üretim VALUES (120, 103, 10, 0, 0) INSERT (üretim VALUES INTO 120 INSERT, 106, 7, 2, 0); "; (üretim VALUES INTO 120 INSERT, 103, 20, 0, 1)
bool (false)
Kendiniz dışında bu davranışını test etmek isterseniz, burada production
tablosu:
CREATE TABLE `production` (
`colonyID` INT NOT NULL ,
`resource_type_being_built` INT NOT NULL ,
`amount_requested` INT NOT NULL ,
`build_list_position` INT NOT NULL ,
`production_number` INT NOT NULL ,
INDEX ( `colonyID` )
) ENGINE = MYISAM ;
Ben bir şey bakan ya da bu sadece garip davranış muyum?