php脚本来创建一个表,PHP - SQL脚本创建器
我需要的:
一個高效的SQL腳本生成器來替換下面的。
的背景。
一個非常簡單的程序,但我需要一個更有效的方式來生成它,我有這個代碼的原因是我需要其他開發人員能夠在我的平臺和數據庫表上創建“模塊”,但我阻止他們擁有完全訪問權限到核心數據庫,他們必須使用我的$ api-> database-> access層來訪問他們的表/數據。它阻止了對我的程序核心部分的任何請求。
以下是我期望如何使用這些函數來構建SQL創建表腳本。
SqlField類/函數只是返回傳遞值的平面數組,沒有什么特別的。
//The structure of the params are..
//$fields[] = SqlField::create($f_name, $f_type, $null, $auto_inc, $is_pk, $is_unique);
$fields[] = SqlField::create('id', 'int(7)', 0, 1, 1, 1);
$sql = $sqlTable->createTable('MyTableName', $fields );以下是我寫得很快的功能,但它很快就變得混亂,而且還沒有完成。
public function createTable($tableName, $fields = array()) {
$sql="CREATE TABLE xmod_".$tableName." ( \r\n";
$isinit = true;
foreach($fields as $field) {
$sql .= ($isinit)? "" : ", \r\n" ;
$isinit = false;
$sql .= "".$field[0]." ".$field[1]." ";
if($field[2] == true) {
$sql .= "NOT NULL ";
}
if($field[3] == true) {
$sql .= "auto_increment ";
}
}
$isinit = true;
//Work on the primary keys
foreach($fields as $field) {
if($field[4] == 1) {
$sql .= ($isinit)? "" : ", \r\n" ;
$isinit = false;
$sql .= "PRIMARY KEY (".$field[0].")";
}
}
$isinit = true;
//Work on the unique fields
foreach($fields as $field) {
if($field[5] == 1) {
$sql .= ($isinit)? "" : ", \r\n" ;
$isinit = false;
$sql .= "UNIQUE id (".$field[0].")";
}
}
$sql .= "\r\n )";
return $sql;
}
總結
以上是生活随笔為你收集整理的php脚本来创建一个表,PHP - SQL脚本创建器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么软件可以投屏到电视免费
- 下一篇: php 多线程处理redis,redis