Ich bin noch ein Neuling, bitte weisen Sie auf Fehler hin, indem Sie leicht kommentieren
Aufgrund der geringen Berufserfahrung kann die Datenbankanbindung nicht vollständig abgedeckt werden.
Daher liefert diese Serie bitte nur Ideen, die ausgereift und stabil sind Suchen Sie selbst nach dem Datenbankpaket
Die ursprüngliche Absicht beim Schreiben dieser Serie besteht darin, andere zu inspirieren. Am Ende jedes Abschnitts werde ich einige persönliche Fragen stellen Fragen (oder auch nicht), ich hoffe, es kann einige Meister dazu bringen, meine Fragen zu beantworten
Die verwendete PHP-Version ist 7.0+. Diese Serie ist nicht abwärtskompatibel 5.6, bitte kommen Sie und spielen Sie
Das Datenbankpaket bezieht sich auf den Quellcode von Laravel. Wenn es Ähnlichkeiten gibt, ist das kein Zufall
Angenommen, wir haben eine Tabelle mit dem Namen „Actor“, die nach einfachen Einstellungen wie folgt direkt aufgerufen werden kann:
$a = Actor::select('first_name', 'last_name') ->where('first_name', 'NICK') ->where('last_name', 'WAHLBERG') ->first() var_dump($a);
Rückgabeformat
object(Actor)[11] public 'first_name' => string 'NICK' (length=4) public 'last_name' => string 'WAHLBERG' (length=8)
Die zurückgegebenen Daten sind weiterhin funktionsfähig (Aktualisierungsdatum /löschen)
$a->update(...); $a->delete();
MySQLOder anstelle von MySQL SQL-Injection-Angriffe vermeiden kann, sicherer und objektorientiert ist , daher wird im Folgenden pdo als Beispiel verwendet
<?php $driver='mysql'; //数据库类型 $host='localhost'; //数据库主机名 $db = 'sakila'; //数据库名称 $username='root'; //数据库连接用户名 $password=''; //数据库密码 $dsn="$driver:host=$host;dbname=$db"; try { $pdo= new PDO($dsn, $username, $password); //初始化一个PDO对象 $sql = "select * from actor"; $res = $pdo->query($sql); // 从actor中获取所有数据 foreach($res as $row) echo $row['first_name']."<br>"; } catch (PDOException $e) { die($e->getMessage()); }
Wenn wir Code vereinfachen müssen, schreiben wir normalerweise selbst einige Hilfsfunktionen. Ich persönlich habe beispielsweise eine schlechte Angewohnheit und verwende nicht gerne die
Debugging-Funktion der Editor (Voice-over: Ich verwende sublime text 3), also schreibe ich es am Anfang so:
$a = "is bug"; die(var_dump($a)); // 输出变量并且停止运行之后的代码 /***从xdebug得知bug出现在这一行,所以查看上一行的逻辑与数据 ***/
function dd($var) { die(var_dump($var)); }
function select($pdo, $table, $require, $where = []) { $w = []; // 将搜索条件转化为数据库命令能接受的格式 foreach ($where as $key => &$val) $w[] = "$key = '$val'"; // 有时候并不需要条件,仅仅将所有数据取出,因此$where默认为空 if(!empty($w)) $w = "where ".implode(', ', $w); else $w = ""; // 生成sql query $sql = "select $require from $table $w"; // 将已生成的query带入pdo实例 $res = $pdo->query($sql); // 返回结果 return $res->fetchAll(); }
select($pdo, 'actor', '*', ['first_name'=>'PENELOPE']) /** * 生成sql query => select * from actor where first_name = 'PENELOPE' **/
Modell.php - Eintragsdatei, verantwortlich für das Einrichten der Tabelle, das Akzeptieren der Anfrage und das Zurücksenden von a Antwort
Das obige ist der detaillierte Inhalt vonSo schreiben Sie Ihr eigenes Datenbankpaket (1). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!