数据操作语句
明显地,你也可以用其他数据操作语句来做同样的事情。下一个例子中演示了如何结合PHP使用一条DELETE语句来选择性的删除表格中的条目。对于该变化,这次我将使用ext/mysqli:
<html> <head> <basefont face="Arial"> </head> <body> <?php // set server access variables $host = "localhost"; $user = "test"; $pass = "test"; $db = "testdb"; // create mysqli object // open connection $mysqli = new mysqli($host, $user, $pass, $db); // check for connection errors if (mysqli_connect_errno()) { die("Unable to connect!"); } // if id provided, then delete that record if (isset($_GET['id'])) { // create query to delete record $query = "DELETE FROM symbols WHERE id = ".$_GET['id']; // execute query if ($mysqli->query($query)) { // print number of affected rows echo $mysqli->affected_rows." row(s) affected"; } else { // print error message echo "Error in query: $query. ".$mysqli->error; } } // query to get records $query = "SELECT * FROM symbols"; // execute query if ($result = $mysqli->query($query)) { // see if any rows were returned if ($result->num_rows > 0) { // yes // print them one after another echo "<table cellpadding=10 border=1>"; while($row = $result->fetch_array()) { echo "<tr>"; echo "<td>".$row[0]."</td>"; echo "<td>".$row[1]."</td>"; echo "<td>".$row[2]."</td>"; echo "<td><a href=".$_SERVER['PHP_SELF']."?id=".$row[0].">Delete</a></td>"; echo "</tr>"; } } // free result set memory $result->close(); } else { // print error message echo "Error in query: $query. ".$mysqli->error; } // close connection $mysqli->close(); ?> </body> </html>
下面是程序结果:

请注意这里mysqli对象的affected_rows属性的我的用法(其返回受最后一个操作影响的总行数)。其也用于ext/mysql中,就像函数mysql_affected_rows()那样。