mysqli_query和mysql_query的一点区别

mysqli是php5提供的新函数库,i表示改进(improve),其执行速度要比mysql_query更快。一般现在php在5或者5以上的版本之中默认支持extension=php_mysql.dll和 extension=php_mysqli.dll。
mysql.dll查询方式可以理解为过程化的查询,如下:
$conn=mysql_connect('localhost','user','password'); //连接mysql数据库
mysql_select_db('databse');  //选择数据库   
$result=mysql_query('select * from table_name');   //mysql_query有两个参数mysql_query(query,connection),第二个参数可选,指明打开连接的名称。
$rzt=mysql_fetch_assoc($qry),$qry是必须的,代表数据指针,该数据指针是从mysql_query()返回的结果集。利用循环语句输出所有语句。
mysqli.dll的查询存在两种方式(网上找到的两个很好的例子):
         1、对象方式

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");


/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}


/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}


/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);


     /* free result set */
    $result->close();
}


/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {


    /* Note, that we can't execute any functions which interact with the server until result set was closed. All calls will return an  'out of sync' error */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Error: %s\n", $mysqli->error);
    }
    $result->close();
}


$mysqli->close();
?>

       2、过程化方式:

$link = mysqli_connect("localhost", "my_user", "my_password", "world");


/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}


/* Create table doesn't return a resultset */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}


/* Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", mysqli_num_rows($result));


    /* free result set */
    mysqli_free_result($result);
}


/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {


    /* Note, that we can't execute any functions which interact with the server until result set was closed. All calls will return an  'out of sync' error */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Error: %s\n", mysqli_error($link));
    }
     mysqli_free_result($result);
 }


     mysqli_close($link);
?>

你可能感兴趣的:(mysqli_query和mysql_query的一点区别)