[英]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.