[英]Check if foreign key exists in a database using PHP
I want to make an check for my application to see if my table in MySQL contains a foreign key. 我想检查我的应用程序,以查看我的MySQL表中是否包含外键。 If so, I want to remove the option to delete the table containing the foreign key. 如果是这样,我想删除删除包含外键的表的选项。 Here is my code: 这是我的代码:
<html>
<head>
<link href="css/stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<?php
require_once 'autoloader.php';
// cursusManager is verantwoordelijk voor alle person handeling op
// de database.
$cursusManager = new cursusmanager();
// Aanname dat delete de enige action is op dit scherm
if(isset($_GET["action"]) && $_GET["action"] == "delete") {
// Aanname dat het id netjes word meegenomen!
$id = $_GET["id"];
$cursusManager->delete($id);
}
// Haal alle cursussen uit de database om deze verderop te laten zien.
$cursussen = $cursusManager->getAll();
?>
<img src="images/logo.png" id="logo" />
<h2>Cursussen</h2>
<!-- simpel gridje, 123 hatsaflats -->
<div class="grid">
<div class="gridheader">Naam</div>
<div class="gridheader">Aantal jaar</div>
<div class="gridheader">Niveau</div>
<div class="gridheader gridaction"></div>
<?php
// loop door alle personen heen
// (in code bovenaan uit database gehaald)
foreach($cursussen as $cursus) {
echo "<div class='gridcontent'>$cursus->naam</div>";
echo "<div class='gridcontent'>$cursus->aantaljaar</div>";
echo "<div class='gridcontent'>$cursus->niveau</div>";
echo "<div class='gridcontent gridaction'><a href='index.php?action=delete&id=$cursus->id'>delete</a></div>";
}
?>
</div>
</body>
This is the code of my php manager: 这是我的PHP管理器的代码:
<?php
/* cursusmanager inherits van mastermanager. Op dit moment bevat de mastermanager
* alleen nog een database verbinding.
*/
class cursusmanager extends mastermanager {
public function getById($aId) {
$statement = $this->connection->prepare("SELECT * FROM cursus WHERE id = ?");
$statement->bindValue(1, $aId);
$statement->execute();
/* fetchobject haalt het eerste record op uit het statement. PHP
* maakt hier zelf een object van, dus het model person.php wordt
* hier nu niet gebruikt. fetchobject geeft null als er geen records
* zijn
*/
return $statement->fetchObject();
}
public function getAll() {
$statement = $this->connection->prepare("SELECT * FROM cursus");
$statement->execute();
/* fetchAll(PDO::FETCH_OBJ) haalt ALLE records op uit het statement. PHP
* maakt hier zelf objecten van, fetchAll(PDO::FETCH_OBJ) geeft een lege array als
* er geen records zijn
*/
return $statement->fetchAll(PDO::FETCH_OBJ);
}
public function delete($aId) {
throw new Exception("DIT IS DUS NOG NIET GEMAAKT!");
}
}
?>
You need to connect to the Information scheme and you can find all the information about the primary key
and foreign keys
in this table 您需要连接到信息方案,并且可以在此表中找到有关primary key
和foreign keys
所有信息。
SELECT * FROM information_schema.TABLE_CONSTRAINTS T;
you need to be a ROOT
user to access the information_schema. 您需要成为ROOT
用户才能访问information_schema。
USING this table you can find the table, db and whether it has foreign key. 使用此表,您可以找到表db以及它是否具有外键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.