Merhaba ben ilk defa stmt oynuyorum (önceden bir uzantısı sınıfı aracılığıyla standart mysqli fonksiyonlarını kullandıktan sonra üzerinde benim kod dönüştürme bakıyor.
Ancak bu çalışma almak için görünmüyor olabilir. Ben PHP 5.2.11 ve mysql 4.1.22 kullanıyorum.
Ben şöyle bir tablo yapısı var:
CREATE TABLE IF NOT EXISTS `tags` ( `tag_id` smallint(3) unsigned NOT NULL auto_increment, `title` varchar(32) NOT NULL default '', PRIMARY KEY (`tag_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
ve burada benim kod, ben http://devzone.zend.com/article/686 ve referans olarak php.net kullanarak oldum oluyor.
$mysqli = new mysqli('***','***','***','***'); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $stmt = $mysqli->prepare("INSERT INTO tags (title) VALUES (?)"); $stmt->bind_param('s', $title); $title = 'test 123'; $stmt->execute(); $stmt->close(); $mysqli->close();
Yeterince basit görünüyor ve ben tag_id otomatik artmasını title sütuna "testi 123" eklemek olacağını umut ediyorum. Ama bunun yerine başlık (bir kabul gibi tag_id incremenet yok) boştur.
Herkes yanlış gidiyorum herhangi bir fikirleri var mı?
=================================================
Atli işaret ve test gibi, bu, 5 ve üzeri MySQL sürümü üzerinde çalışıyor. Php.net belgeleri mysqli "MySQL 4.1 ve üstü tarafından sağlanan işlevselliği erişim sağlar" diyor Yani rağmen muhtemelen sql eski bir sürümünü kullanarak bir sorun var.
O benim bir ortamda bu olur büyük çalışma almak için nasıl çalışıyor ya olabilir neden kimse başka bir sebep önerebilir. Eğer değilse benim hazırlamak için mysqli sınıfının kendi uzantısı ve temiz sorgu ile devam edeceğiz herhalde.