簡體   English   中英

調用數據庫查詢功能時出現致命錯誤

[英]Fatal Error when calling DB query function

我目前正在學習PHP,從事標准的CRUD工作。 我正在嘗試編寫一個函數(query_entire_table),當我要查詢表的所有行時,可以始終使用該函數,以使其保持干燥。

db.php:

<?php
  $db['db_host'] = 'localhost';
  $db['db_user'] = 'root';
  $db['db_pass'] = '';
  $db['db_name'] = 'cms';

  foreach($db as $key => $value){
    define(strtoupper($key), $value);
  }

  $connection = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);

  function query_entire_table($tablename){
    $query = "SELECT * FROM " . $tablename;
    $select_all_entries = mysqli_query($connection, $query);
    return mysqli_fetch_assoc($select_all_entries);
  }
?>

當我調用該函數時,出現以下錯誤:致命錯誤: 無法在/ Applications / XAMPP / xamppfiles /中重新聲明query_entire_table()(先前在/Applications/XAMPP/xamppfiles/htdocs/cms/includes/db.php:13中聲明)第17行的htdocs / cms / includes / db.php

這就是我所謂的函​​數:

<?php
    $posts_table = query_entire_table('posts');
    while($posts_table){
      //doing some stuff...
    }
?>

在這一點上,我只包含並調用一次函數,無法完全理解這里發生的事情。

請仔細閱讀錯誤消息:

無法重新聲明query_entire_table()

與其他語言(例如JavaScript)不同,PHP不允許重新聲明函數或類:

C:\>php
<?php
function foo(){
}
function foo(){
}
^Z
PHP Fatal error:  Cannot redeclare foo() (previously declared in -:3) in - on line 5

無論將db.php注入代碼中的db.php ,都可能使用了錯誤的構造。 嘗試這樣的事情:

require_once('/path/to/db.php');

請注意_once后綴。

該錯誤表明您已在代碼的其他位置聲明了query_entire_table函數。

這也可能意味着您多次包含db.php。 嘗試使用include_once而不是常規的include。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM