Mysqli prepare statement not working

Hi,

I am trying to update column in database using mysql prepare statement.

I am getting no error but data not updated in database.

Following is table defination and example code.


-- Table structure for table `tbl_gender`
--

CREATE TABLE IF NOT EXISTS `tbl_gender` (
  `gid` int(11) NOT NULL AUTO_INCREMENT,
  `gender_name` varchar(300) DEFAULT NULL,
  PRIMARY KEY (`gid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `tbl_gender`
--

INSERT INTO `tbl_gender` (`gid`, `gender_name`) VALUES (1, 'Male'),(2, 'Female');


error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);

$db  = new mysqli('localhost', 'root', 'mypassword', 'mydatabase');

// Create statement object
$stmt = $db->stmt_init();

$gender_name ="Male";

$gid = 2;

$stmt = $db->prepare(" UPDATE tbl_gender SET gender_name = ? WHERE gid = ? ");
$stmt->bind_param("si,",$gender_name,$gid);

/* execute prepared statement */
$stmt->execute();

/* close connection */
$db ->close();

?>

Any Idea?

-Thanks