php中mysqi_query和mysqli_real_query的区别

根据mysqli_query 的官方解释

For non-DML queries (not INSERT, UPDATE or DELETE), this function is similar to calling mysqli_real_query() followed by either mysqli_use_result() or mysqli_store_result().

对于非 DML 性质的操作,mysqli_query 的效果和 mysqli_real_query()之后执行mysqli_store_result()的效果是一致的

也就是说,对于SELECT 操作,mysqli_query()执行之后会返回结果集,类似 mysqli_real_query() 后执行 mysqli_store_result()

同样,mysqli_real_query()的返回结果为一个bool值,用于判断这次执行是否正确,再让用户自行进行后面的解析操作

 

<?php
$con = @new mysqli('127.0.0.1', 'root', 'testsecret');
if ($con->connect_errno) {
    die('Connect Error ' . $con->connect_error);
}

// 直接执行query
$query = $con->query("SHOW DATABASES");

var_dump($query->fetch_all());

$real_query = $con->real_query("SHOW DATABASES");

if ($real_query) {
    var_dump($con->store_result());
} else {
    die('error');
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章