MySQL查询所影响的行数的PHP函数
在进行数据库操作时,我们需要知道操作执行后对于表中的数据影响了多少行,常见的操作包括插入、更新、删除等。而在PHP中,我们可以通过MySQL查询所影响的行数的函数来进行获取。
1. mysqli_affected_rows函数
mysqli_affected_rows函数用于获取前一次MySQL操作所影响的行数,适用于面向对象的mysqli连接。
$link = new mysqli('localhost', 'user', 'password', 'database');
if ($link->connect_errno) {
die('Connect Error:' . $link->connect_error);
}
$sql = "UPDATE user_table SET age=age+1 WHERE sex='female'";
$link->query($sql);
$affected_rows = $link->affected_rows;
echo "操作所影响行数:" . $affected_rows;
在上述代码中,我们先创建一个mysqli对象$link用于连接MySQL数据库。接着执行一个模拟的更新操作,将性别为女的用户的年龄加1,然后通过$link->affected_rows获取该操作所影响的行数。
2. mysql_affected_rows函数
mysql_affected_rows函数用于获取前一次MySQL操作所影响的行数,适用于面向过程的MySQL连接。
$link = mysql_connect('localhost', 'user', 'password');
if (!$link) {
die('Connect Error:' . mysql_error());
}
mysql_select_db('database', $link);
$sql = "DELETE FROM user_table WHERE age>50";
mysql_query($sql, $link);
$affected_rows = mysql_affected_rows($link);
echo "操作所影响行数:" . $affected_rows;
在上述代码中,我们使用mysql_connect函数来创建MySQL连接,使用mysql_select_db函数来选择相应的数据库。接着执行一个删除操作,删除年龄大于50岁的用户,并通过mysql_affected_rows获取该操作所影响的行数。
3. PDO::rowCount方法
PDO::rowCount方法用于获取最后一次执行SQL语句后所影响的行数,适用于PDO连接方式。
$dsn = 'mysql:host=localhost;dbname=database';
$user = 'user';
$pass = 'password';
try {
$pdo = new PDO($dsn, $user, $pass);
$sql = "INSERT INTO user_table(name,age,sex) VALUES('Michael',22,'male')";
$pdo->query($sql);
$affected_rows = $pdo->rowCount();
echo "操作所影响行数:" . $affected_rows;
} catch (PDOException $e) {
echo "Connection failed:" . $e->getMessage();
}
在上述代码中,我们使用PDO连接方式进行数据库连接,并执行一个插入操作,插入一条新的用户信息。然后通过$pdo->rowCount方法获取该操作所影响的行数。
Conclusion
以上介绍了三种不同连接方式下,获取MySQL查询所影响行数的具体方法。根据不同的连接方式,选择对应的函数或方法进行调用即可。此外,在实际应用中,获取操作所影响的行数非常重要,能够帮助我们快速了解执行结果。因此,在开发过程中,需要注意相应函数或方法的使用以及获取方式的正确性。