零空比特数据库代码类生成器 (ZNB DB Code Generator)是一款基于 PHP 零空比特数据库代码类生成器 (ZNB DB Code Generator)功能特色 1) 生成 增删改查等操作。 2) 易于使用。 3) 使用方法: (一)、对于 SQLite 用户 (1). 所有的字段应该加上 NotNull ,非空。 如下: (2). 应该加一个自增的主键: (3).日期时间型的应该加上默认值: (datetime('now', 'localtime')) (4).UUID全球统一编码默认值应该置为:(hex(randomblob(16))) (5). 对于使用我们的生成器(ZNB_DB_CodeGenerator)的用户, (a). 其日期时间型应该在 aardio 里设置成 time.now(); (b). 其 UUID全球统一编码在 aardio 里设置成 win.guid.create(); aardio中的 SQLite 代码使用方法如下: import win.ui; import sqlite; import web.json; import SQLiteDB; import SQLiteDB.znb_UserAgents; ... winform.btnStart.oncommand = function(id,event) { var sqlite_conn=sqlite("mySqlite.db"); var znb_UserAgents_Tab=..SQLiteDB.znb_UserAgents.convertAs_znb_UserAgents_Tab({}); /**intellisense(!znb_UserAgents_Tab) id_UserAgent=id_UserAgent sUserAgent=sUserAgent sMemo=sMemo end intellisense**/ znb_UserAgents_Tab.sUserAgent="曾劲松"; znb_UserAgents_Tab.sMemo="asdfsadf as"; /* var ok,id,err=..SQLiteDB.znb_UserAgents.insert_znb_UserAgents( sqlite_conn,znb_UserAgents_Tab); ..console.dump("ok:",ok); ..console.dump("id:",id); ..console.dump("err:",err); */ /* ok: true id: 8 err: unknown error 完成执行,已无数据 */ znb_UserAgents_Tab.id_UserAgent=6; znb_UserAgents_Tab.sUserAgent="www.znb.cc"; //update_znb_UserAgents(sqlite_conn,znb_UserAgents_Tab)= //更新 znb_UserAgents。返回数据库最近一次运行exec()所改变的行数 iCount, 和错误 sError 。 /* var iCount,err=..SQLiteDB.znb_UserAgents.update_znb_UserAgents( sqlite_conn,znb_UserAgents_Tab); */ /* ..console.dump("iCount:",iCount); ..console.dump("err:",err); iCount: 1 err: */ var znb_UserAgentsTab=..SQLiteDB.znb_UserAgents.select_where_znb_UserAgents( sqlite_conn," where [id_UserAgent]=3 "); ..console.dump("znb_UserAgentsTab:", ..web.json.stringify(znb_UserAgentsTab,true)); /* znb_UserAgentsTab: [ { "id_UserAgent":3, "sMemo":"FireFox", "sUserAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:84.0) Gecko/20 100101 Firefox/84.0" } ] */ var iCount,sError=..SQLiteDB.znb_UserAgents.delete_znb_UserAgents( sqlite_conn,{6,7,8}) /* ..console.dump("iCount:",iCount); ..console.dump("sError:",sError); iCount: 3 sError: */ sqlite_conn.close(); } (二)、对于 MySQL 用户 (1). 所有的字段应该加上 NotNull ,非空。并且要输入注释(Comment)。 如下: (2). 对于 PHP : a). date_default_timezone_set('PRC'); //设置中华人民共和国标准时间 ; b). 对于日期时间字段, 调用这个方法: date("Y-m-d H:i:s",time()) ; c). 对于全球统一编码字段,调用父类的uuid()方法: PHP中的代码使用方法: //http://localhost/test/index.php ini_set('display_errors', 'On'); error_reporting(E_ALL); date_default_timezone_set('PRC'); //设置中华人民共和国标准时间 //引用数据库文件。 include_once "codeGenerated/ZNB_include_classes.php"; echo " "; $mysql_server_name = 'localhost:3306'; //改成自己的mysql数据库服务器 $mysql_username = 'root'; //改成自己的mysql数据库用户名 $mysql_password = 'root'; //改成自己的mysql数据库密码 $mysql_database = 'test'; //改成自己的mysql数据库名 $conn = mysqli_connect($mysql_server_name, $mysql_username, $mysql_password, $mysql_database); //连接数据库 //连接数据库错误提示 if (mysqli_connect_errno($conn)) { die("连接 MySQL 失败: " . mysqli_connect_error()); } //数据库编码格式 mysqli_query($conn, "set names utf8"); $ZNBMySQLDBBase=new ZNBMySQLDBBase($conn); //单值查询。 print_r( $ZNBMySQLDBBase->GetSingleValue("select count(*) from `user`"). ' '); $r=$ZNBMySQLDBBase->GetSingleValue("select `name` from `user` limit 1"); var_dump($r); //写日志。 $ZNBMySQLDBBase->writeLog("www.znb.cc 。零空比特。"); $znb_user=new znb_user($conn); //查询一条 var_dump($znb_user->SelectSingle(" where `id`=1")); //正确 //查询多条 var_dump($znb_user->SelectMultiple(" where `id`>=1")); //正确 //echo 'uuid:'.$case->uuid()." "; //正确。uuid:d54a8437-e4f2-ffb3-0dcc-a2b0ac018138 $znb_user=new znb_user($conn); $znb_user->id=4; $znb_user->age=34; $znb_user->birthDay="20000808"; $znb_user->creationTime= date("Y-m-d H:i:s", time()); $znb_user->name="曾劲松"; $znb_user->password="123'456"; $znb_user->uuid=$znb_user->uuid(); //var_dump($znb_user); //正确。 var_dump($znb_user->Update()); //正确 //var_dump($znb_user->Insert()); //正确 //echo "znb_user->Delete():".$znb_user->Delete(); //正确 return ; // mysqli_set_charset($conn,"utf8");//设置默认客户端字符集。 // mysqli_select_db($conn,$mysql_database); //更改连接的默认数据库 //查询代码 $sql = "select * from `case`"; print_r("sql:" . $sql); $mysqli_result = mysqli_query($conn, $sql); print_r($mysqli_result); mysqli_connect_error(); //$row = mysqli_fetch_array( $mysqli_result,MYSQLI_ASSOC); while ($row = mysqli_fetch_array($mysqli_result, MYSQLI_ASSOC)) { echo $row['caseInfo'] . ' '; } // 释放结果集 mysqli_free_result($mysqli_result); //关闭MySQL数据库连接 mysqli_close($conn); echo 'www.znb.cc' . " "; echo " "; ?> aardio中的代码使用方法 : var mysql_client=mainForm.creatMySQLConnect(); if(mysql_client==null){ return ; } //新增 /////////////////////////////////////////////////////////// var znb_user_Tab=..MySQLDB.znb_user.convertAs_znb_user_Tab({}); znb_user_Tab.id=19; znb_user_Tab.age=30; znb_user_Tab.birthDay=..time(); znb_user_Tab.name="零空比特曾劲松"; znb_user_Tab.creationTime=..time(); znb_user_Tab.password="wasdf"; znb_user_Tab.uuid=tostring(win.guid.create()); var ok,id,err=..MySQLDB.znb_user.insert_znb_user( mysql_client,znb_user_Tab); if(ok!=null) { mainForm.appendText("插入 ok:" ++ tostring(ok) ++ " id: " ++ id); //■ 2020-08-29 17:34:00 插入 ok:true } if(err!=null) { mainForm.appendText("插入错误:", err); } //================================================== //更新////////////////////////////////////////////// znb_user_Tab.name="零空比特zjs"; znb_user_Tab.birthDay=..time(); znb_user_Tab.creationTime=..time(); var ok,iAffectedRows,err=..MySQLDB.znb_user.update_znb_user( mysql_client,znb_user_Tab); if(ok!=null) { mainForm.appendText("更新 ok:" ++ tostring(ok)); mainForm.appendText("更新记录数 :" ++ tostring(iAffectedRows)); } if(err!=null) { mainForm.appendText("更新错误:", err); } //================================================== //选择//////////////////////////////////////////////// var znb_user_Tabs,result=..MySQLDB.znb_user.select_where_znb_user( mysql_client," where id>10 "); mainForm.appendText("选择 id>10:"++ ..table.tostring(znb_user_Tabs)); /* ■ 2020-08-29 20:52:21 选择 id>10:{ [1]={birthDay="2020-08-28";name="zzz";id=11;creationTime="2020-08-28 20:38:41";age=20;uuid="DDD3A6CF-E61C-4F9C-AD05-4AC5B083A69B"}; [2]={birthDay="2020-08-29";name="零空比特zjs";id=12;creationTime="2020-08-29 20:08:13";age=30;uuid="1A6A10DA-7977-4101-BB75-0AF674A3927A"}; [3]={birthDay="2020-08-29";name="zzz";id=13;creationTime="2020-08-29 16:06:03";age=20;uuid="BF438EA1-B067-439A-8A52-70A560BDB614"}; [4]={birthDay="2020-08-29";name="零空比特曾劲松";id=14;creationTime="2020-08-29 17:33:44";age=30;uuid="3E4C2E88-85C6-482A-B651-1AFBA0A79E77"}; [5]={birthDay="2020-08-29";name="零空比特曾劲松";id=15;creationTime="2020-08-29 17:33:47";age=30;uuid="F641709D-A5F6-4221-A523-8A5B15602CDF"}; [6]={birthDay="2020-08-29";name="零空比特曾劲松";id=16;creationTime="2020-08-29 17:34:00";age=30;uuid="1BF32A13-A972-44CA-9F83-A973219A23D2"}; [7]={birthDay="2020-08-29";name="零空比特曾劲松";id=17;creationTime="2020-08-29 19:35:50";age=30;uuid="B209D480-D503-444A-B24F-EEF6D7D4207E"}; [8]={birthDay="2020-08-29";name="零空比特曾劲松";id=18;creationTime="2020-08-29 20:08:10";age=30;uuid="E522436F-5CAA-4A9D-BD7D-05C5CBA5F849"}; [9]={birthDay="2020-08-29";name="零空比特zjs";id=19;creationTime="2020-08-29 20:52:21";age=30;uuid="2459990A-D08A-4697-BBFD-8797BA8D9461"} } */ //=================================================== //根据条数删除 //////////////////////////////////////// var ok,iAffectedRows,err=..MySQLDB.znb_user.delete_znb_user(mysql_client,{17;18;19}); mainForm.appendText("根据条数删除 iAffectedRows:"++ iAffectedRows); //■ 2020-08-29 21:22:46 根据条数删除 iAffectedRows:2 //■ 2020-08-29 21:23:25 根据条数删除 iAffectedRows:0 //===================================================== //删除 where ///////////////////////////////////////// var ok,iAffectedRows,err=..MySQLDB.znb_user.delete_where_znb_user( mysql_client," where `id`>=15"); mainForm.appendText("根据条件删除 iAffectedRows:"++ iAffectedRows); //■ 2020-08-30 08:36:59 根据条件删除 iAffectedRows:1 //==================================================== var znb_user_view_Tab=..MySQLDB.znb_user_view.convertAs_znb_user_view_Tab({}); znb_user_view_Tab.id=1; var znb_user_view_Tabs,result=..MySQLDB.znb_user_view.select_where_znb_user_view( mysql_client,""); mainForm.appendText("znb_user_view_Tabs:"++ ..table.tostring(znb_user_view_Tabs)); //■ 2020-08-31 11:35:47 znb_user_view_Tabs:{[1]={id=1;PASSWORD="123456";NAME="zjs"}} mysql_client.close(); 零空比特数据库代码类生成器 (ZNB DB Code Generator)更新日志 √ 20210206 发布1.3 版本,主要功能为 aardio 生成 SQLite 类代码。 √ 20200923 发布1.2 版本,主要功能为 aardio 生成 MySQL 类代码。 √ 20200825 发布1.1 版本,调试错误。 √ 20200815 发布1.0 版本,主要功能为 PHP 生成 MySQL 类代码。 使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。 |