![](/img/trans.png)
[英]How can I mix PHP variables with SELECT data in a MySQL INSERT query?
[英]Can I mix MySQL APIs in PHP?
我已經搜索了網絡,到目前為止我所看到的是您可以同時使用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...)
)
不,你不能同時使用mysql
和mysqli
。 它們是獨立的 API,它們創建的資源彼此不兼容。
不過,有一個mysqli_close
。
從技術上講,您可以根據需要使用任意數量的單獨連接,而您的問題僅僅是由拼寫錯誤引起的 - 您不能將一個擴展的資源與另一個擴展的功能一起使用,這很明顯。
但是,您應該避免來自同一個腳本的多個連接,無論是來自單個 API 還是不同的 API。 因為它會給您的數據庫服務器帶來負擔並耗盡其資源。 因此,盡管從技術上講你可以,但你不應該在你的代碼中混合不同的擴展,除非是為了短期的重構。
MySQLi
比現在已棄用的MySQL
安全得多。 這就是為什么你應該堅持使用MySQLi
並且你不能混合它們,因為它們都是不同的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.