我已经搜查了网,到目前为止,我所看到的是,你可以使用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";
?>
要么
<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysqli_close($con);
echo "Done";
?>
是有效的,但是当我使用此代码时,我得到的是:
Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
对于第一个,除了与相同mysqli_close()
。对于第二个。
问题是什么?我不能使用mysql_
和mysqli
在一起?还是正常?是我可以检查连接是否全部有效的方法吗?(if(mysq...)
)
5
mysql已被弃用,这只能说明它们不能一起工作。你为什么要这样做..?
—
Sterling Archer
您应该避免
—
AndreiBârsan'13年
mysql_*
完全使用函数。它们容易出错且不安全,它们将很快从PHP中删除(目前已被标记为已弃用)。[这个好答案] [0]进一步详细解释了它们为什么不好。[0]:stackoverflow.com/a/12860046/1055295
1)您坚持使用旧的伪劣界面(mysql),该版本从eons开始就在文档中被标记为过时。2)出于某种奇怪的原因,您想将其与后继者混合使用,而不是做对的事情并转换为新的界面3 )您很惊讶,无法对它进行询问,尽管很明显您所做的事情是胡说八道。
—
2013年
这不是迷信。当然,您可以使用
—
AndreiBârsan13年
mysqli_*
函数编写不好的代码,而使用函数编写好的代码mysql_*
。但是后一类被标记为已弃用,因为它是一组较差的功能,不能支持OO风格的调用甚至是准备好的语句(仅举两个示例)。如果可以选择两种工具来完成相同的工作,那么从长远来看,其中一种显然更好并且更灵活,正确的答案不是很明显吗?
当然不是。但是,考虑到可以在不赞成使用的功能和积极支持的功能之间进行选择,例如滚动自己的抽象,为什么要使用旧功能?
—
安德烈Bârsan