我可以在PHP中混合MySQL API吗?

N3m*_*3mo 102 php mysql mysqli pdo

我搜索过网络,到目前为止我所看到的是你可以使用mysql_mysqli_一起意义:

<?php
$con=mysqli_connect("localhost", "root" ,"" ,"mysql");

if( mysqli_connect_errno( $con ) ) {
    echo "failed to connect";
}else{
    echo "connected";
}
mysql_close($con);
echo "Done";
?>
Run Code Online (Sandbox Code Playgroud)

要么

<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
    echo "failed to connect";
}else{
    echo "connected";
}
mysqli_close($con);
echo "Done";
?>
Run Code Online (Sandbox Code Playgroud)

有效,但是当我使用这段代码时,我得到的是:

Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Run Code Online (Sandbox Code Playgroud)

对于第一个和相同的除外mysqli_close().对于第二个.

问题是什么?我不能使用mysql_mysqli在一起?还是正常的?我可以检查连接是否有效吗?(if(mysq...))

Exp*_*lls 62

不,你不能使用mysqlmysqli在一起.它们是单独的API,它们创建的资源彼此不兼容.

但是有一个mysqli_close.


Riz*_*123 12

这里只是给出一个关于所有三个MYSQL API的一般答案:

不能混合任何三(中mysql_*,mysqli_*,PDO)MYSQL API从PHP的在一起,它是行不通的.它甚至在手册FAQ中:

这是不可能的混合扩展.因此,例如,将mysqli连接传递给PDO_MySQL或ext/mysql 将不起作用.


您需要使用相同的MySQL API及其相关功能,从连接到查询.