使用单个插入语句插入多行后,我从$mysqli->info中获得预期的行为。
var_dump( $mysqli->info );
string 'Records: 1246 Duplicates: 0 Warnings: 0' (length=41)
插入单行后,$mysqli->info返回NULL
var_dump( $mysqli->info );
null
var_dump( $mysqli->affected_rows );
int 1
mysqli_info()返回空字符串
var_dump( mysqli_info( $mysqli ) )
string '' (length=0)
我找不到任何关于这个行为的参考!我希望在像
这样的单个插入之后出现信息string 'Records: 1 Duplicates: 0 Warnings: 0' (length=38)
PHP 5.4.12, mySQL 5.6.12
执行代码:
$sql = "INSERT INTO module_history (BackupDate, Modules) VALUES ('2014-01-01','Module List1')";
$db->query($sql);
echo $sql . "n";
var_dump( $db->info );
var_dump( $db->affected_rows );
$sql = "INSERT INTO module_history (BackupDate, Modules) VALUES ('2014-01-02','Module List2'),('2014-01-03','Module List3')";
$db->query($sql);
echo $sql . "n";
var_dump( $db->info );
var_dump( $db->affected_rows );
结果:
INSERT INTO module_history (BackupDate, Modules) VALUES ('2014-01-01','Module List1')
null
int 1
INSERT INTO module_history (BackupDate, Modules) VALUES ('2014-01-02','Module List2'),('2014-01-03','Module List3')
string 'Records: 2 Duplicates: 0 Warnings: 0' (length=38)
int 2
http://dev.mysql.com/doc/apis-php/en/apis-php-mysqli.info.html
表3.9 mysqli_info可能的返回值查询类型-结果示例string
- 插入选择…记录:100副本:0警告:0
- 插入……值 (...),(...),(...)记录:3副本:0警告:0
- 加载数据文件…记录:1删除:0跳过:0警告:0
- alter table…记录:3副本:0警告:0
- 更新……匹配行数:40更改:40警告:0
注意
不属于上述格式之一的查询不被支持。在这些情况下,mysqli_info将返回一个空字符串。
结论:上面没有列出单行插入的情况。因此,一个空字符串是应该被期待的。