Я создаю веб-приложение, которое в значительной степени опирается на получение данных из MySQL с помощью PHP. В ~ 50 функций У меня есть очень похожий код запрашивающего отдельных значений данных из MySQL:Общая функция PHP для получения данных из базы данных MySQL
function get_profile_picture($whatmember) {
global $connection;
$whatmember = mysql_prep($whatmember);
$query = "SELECT picture_location FROM members WHERE member_id={$whatmember} LIMIT 1";
$returnval = mysqli_query($connection,$query);
if(!$returnval) {
return "Query failed: " . mysqli_error($connection);
}
if(mysqli_num_rows($returnval) > 0) {
$row = mysqli_fetch_assoc($returnval);
return $row["picture_location"];
}
return false;
}
Так что мой вопрос заключается в следующем: существует ли универсальный и безопасный способ сделать функцию, так что я могу просто ввести «SELECT что- value FROM what-database.what-table WHERE what-criteria = what-value ", который позволяет массивы результатов, а также одиночные значения? Я сделал попытку с нижеследующим, но это, очевидно, хак и слэш метод, который получает только одно значение:
function get_single_value($database_name,$column_name,$table_name,$criteria,$criteria_value) {
$database_name = mysql_prep($database_name);
$column_name = mysql_prep($column_name);
$table_name = mysql_prep($table_name);
$criteria = mysql_prep($criteria);
$criteria_value = mysql_prep($criteria_value);
if(!empty($column_name) && !empty($table_name) && !empty($criteria) && !empty($database_name)) {
global $connection;
global $gamesconnection;
global $locationconnection;
if($database_name=="connection") {
$database_connection = $connection;
} else if ($database_name=="games") {
$database_connection = $gamesconnection;
} else if ($database_name=="locations") {
$database_connection = $locationconnection;
} else {
die("Database connection doesn't exist for {$database_name}.");
}
$query = "SELECT {$column_name} FROM {$table_name} WHERE {$criteria}='{$criteria_value}' LIMIT 1";
$result = mysqli_query($database_connection,$query);
if(!$result) {
die("Unable to get {$column_name} from {$table_name}. Error: " . mysqli_error($database_connection) . " Query: " . $query);
}
if(mysqli_num_rows($result)>0) {
$row = mysqli_fetch_assoc($result);
return $row[$column_name];
}
}
return false;
}
И мой get_profile_picture() функция будет выглядеть примерно так:
function get_profile_picture($whatmember) {
return get_single_value("connection","picture_location","members","member_id",$whatmember);
}
Я все еще довольно новичок в PHP и MySQL, поэтому любые указатели на улучшение моего кода также будут отличными. Заранее спасибо!
почему бы не найти дб конкретных рамок для этой –
я не знаю, что вы имеете в виду, у вас есть какие-либо предложения? –
Ваша идея не новая, ее сделали. поэтому вместо того, чтобы изобретать колесо ... –