亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

警告:mysqli_query()期望參數1為mysqli,在

警告:mysqli_query()期望參數1為mysqli,在

慕妹3146593 2019-06-25 11:05:13
警告:mysqli_query()期望參數1為mysqli,在我正在嘗試構建一個簡單的自定義CMS,但是我得到了一個錯誤:警告:mysqli_query()期望參數1為MySQLi,在我為什么要犯這個錯誤?我的所有代碼都是MySQLi,我使用的是兩個參數,而不是一個。$con=mysqli_connect("localhost","xxxx","xxxx","xxxxx");//check connectionif (mysqli_connect_errno($con)){echo "Failed to connect to MySQL:" .  mysqli_connect_error();}function getPosts() {$query = mysqli_query($con,"SELECT * FROM Blog");while($row = mysqli_fetch_array($query))     {         echo "<div class=\"blogsnippet\">";         echo "<h4>" . $row['Title'] . "</h4>" . $row['SubHeading'];         echo "</div>";     }}
查看完整描述

3 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

正如評論中提到的,這是一個范圍界定的問題。特別是,$con不在getPosts功能。

您應該將連接對象作為依賴項傳入,例如

function getPosts(mysqli $con) {
    // etc

如果連接失敗,我也強烈建議停止執行。像這樣的東西就足夠了

$con=mysqli_connect("localhost","xxxx","xxxx","xxxxx");if (mysqli_connect_errno()) {
    throw new Exception(mysqli_connect_error(), mysqli_connect_errno());}getPosts($con);


查看完整回答
反對 回復 2019-06-25
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

在$con上使用全局范圍,并將其放入getPosts()函數中,如下所示。

function getPosts() {global $con;$query = mysqli_query($con,"SELECT * FROM Blog");while($row = mysqli_fetch_array($query))
    {
        echo "<div class=\"blogsnippet\">";
        echo "<h4>" . $row['Title'] . "</h4>" . $row['SubHeading'];
        echo "</div>";
    }}


查看完整回答
反對 回復 2019-06-25
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

這個getPosts()函數似乎期待$con是全球性的,但你不能宣布它是全球性的。

很多程序員都把光禿禿的全局變量看作是一種“代碼嗅覺”。在規模的另一端,可供選擇的方法是始終在連接資源周圍傳遞。兩者之間的半路是一個單例調用,它總是返回相同的資源句柄。


查看完整回答
反對 回復 2019-06-25
  • 3 回答
  • 0 關注
  • 1597 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號