<?php
$mysqli = new mysqli('localhost','root','root','Test');
$query = "INSERT INTO products SET sku=?,name=?,price=?";
$stmt = $mysqli->stmt_init();
$stmt->prepare($query);
$sku = 'test';
$name= 'test';
$price = 5.25;
$stmt->bind_param('ssd',$sku,$name,$price);
$stmt->execute();
echo $stmt->affected_rows."<br/>";
$stmt->close();
$mysqli->close();
?>
1.bind_param()
i—–所有INTEGER类型
d—-DOUBLE和FLOAT类型
b—–BLOB类型
s——所有其他类型(包括字符串)
2.affected_rows
是个属性,不加(),返回stmt对象指定的最后一个语句所影响的记录数。注意,该方法只与INSERT,MODIFY和DELETE有关
<?php
$mysqli = new mysqli('localhost','root','root','Test');
$query = 'SELECT sku,name,price FROM products ORDER BY sku';
$stmt = $mysqli->stmt_init();
$stmt->prepare($query);
$stmt->execute();
$stmt->bind_result($skua,$namea,$pricea);
$stmt->store_result();
echo $stmt->num_rows."<br/>";
while($stmt->fetch()){
printf("%s, %s, %s<br/>",$skua,$namea,$pricea);
}
$stmt->close();
$mysqli->close();
?>
1.bind_result()
参数与查询的sql的字段相对应
2.num_rows
属性,不带(),返回stmt对象语句获取的记录数
3.store_result()
不调用这个方法,$stmt->num_rows没值