РЕДАКТИРОВАТЬ: я был новичком в SQL и заблудился в JOIN
когда я это написал. Мне понадобилось много времени, чтобы понять, что ты можешь просто SELECTS
по отдельности. ОК, это обрабатывается на долю медленнее, чем JOIN
но для учащихся и / или небольших баз данных это практически то же самое и делает код много более читабельным. Я до сих пор делаю большинство JOIN
Операции типа как последовательные операции.
Да, я знаю всех вас, суперзвезды SQL — мне лучше пойти непослушным шагом.
===========================================
ОРИГИНАЛЬНАЯ ПОЧТА, КОТОРАЯ ОЧИЩАЛАСЯ С ИСПРАВЛЕНИЕМ TYPO
Я все еще борюсь с классами, но добираюсь туда медленно.
Моя следующая работа заключалась в том, чтобы все виды циклов MySQL были аккуратно спрятаны внутри классов.
Я думаю, что я решил проблему получения моего стандартизированного вызова PDO в метод путем передачи его в качестве атрибута (я не использую обычный include
в классе почему-то).
Итак, мой призыв к созданию экземпляра класса был:
$getval= new Transmission;
$resx= $getval->retrieveTransmission($person,$pdo);
debug($resx);
Поэтому я надеюсь, что передаю экземпляр моего PDO по умолчанию, настроенный включением на странице:
try
{
$pdo = new PDO("mysql:host=$hjoyjoy;dbname=$dhaphap", $usadsad, $pborbor);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');
}
catch (PDOException $e)
{ blah blah };
Я создал новый объект Transmission и назвал его:
$getval= new Transmission;
$resx= $getvalretrieve->Transmission($person,$pdo);
debug($resx);
В классе Transmission (код в данный момент на странице работает нормально) я попытался:
public function retrieveTransmission($id,$pdo){
try
{ $sql =
"SELECT id FROM transmission
WHERE person_id = :person;";
$statement = $pdo->prepare($sql);
$statement->bindParam(':person',$person, PDO::PARAM_INT);
$statement->execute();
$result=$statement ->fetch(PDO::FETCH_BOTH);
return($result);
}
catch (PDOException $e)
{
$output = 'Error getting messages ready to display #6734: ' . $e->getMessage();
include $_SERVER['DOCUMENT_ROOT'] ."/vvvxxx/includes/output.html.php";
exit();
}
Затем это должно войти в
foreach ($resx as $row)
который делает другое SELECT
петля.
Так есть ли довольно простой способ взять около 10 из них SELECT/UPDATE/STORE/DELETE
циклы и безопасно заправляя их внутри классов, как я строю эту вещь?
Это была просто опечатка.
Я также понимаю, что не использование JOINed запросов — это «плохая форма», но когда вы начинаете делать несколько просто запросы облегчают понимание.
Других решений пока нет …