"; echo "Please check your instalation." . "
"; die; } set_time_limit(0); function setup_saveloadlist() { define("SERVER", "localhost:30000"); define("USER", "dba"); define("PASSWORD", ""); define("DB", "demodb"); define("TABLE", "wwwsqldesigner"); } function setup_import() { define("SERVER", "localhost:30000"); define("USER", "dba"); define("PASSWORD", ""); define("DB", "demodb"); } function connect() { $conn = cubrid_mysql_connect(SERVER, USER, PASSWORD, DB); if (!$conn) { return false; } return $conn; } function import($conn) { $xml = ""; $arr = array(); @ $datatypes = file("../../db/cubrid/datatypes.xml"); $arr[] = $datatypes[0]; $arr[] = ''; for ($i=1;$i 0) { while ($row = cubrid_mysql_fetch_assoc($result)) { $table = $row["class_name"]; $xml .= ''; $q = get_SQL_describeTableSQL($table); $result2 = cubrid_mysql_query_native($q, $conn); while ($row = cubrid_mysql_fetch_assoc($result2)) { $name = $row["Field"]; $type = str_replace(",0)", ")", $row["Type"]); $null = ($row["Null"] == "YES" ? "1" : "0"); $def = $row["Default"]; $ai = (preg_match("/auto_increment/i",$row["Extra"]) ? "1" : "0"); if ($def == "NULL") { $def = ""; } $xml .= ''; $xml .= ''.strtoupper($type).''; $xml .= ''.$def.''; /* fk constraints */ /* $q = "SELECT REFERENCED_TABLE_NAME AS 'table', REFERENCED_COLUMN_NAME AS 'column' FROM KEY_COLUMN_USAGE k LEFT JOIN TABLE_CONSTRAINTS c ON k.CONSTRAINT_NAME = c.CONSTRAINT_NAME WHERE CONSTRAINT_TYPE = 'FOREIGN KEY' AND c.TABLE_SCHEMA = '".$db."' AND c.TABLE_NAME = '".$table."' AND k.COLUMN_NAME = '".$name."'"; */ $q = "SELECT NULL AS `table`, NULL AS `column` FROM db_root"; //no PHP support in CUBRID for FK $result3 = cubrid_mysql_query_native($q, $conn); while ($row = cubrid_mysql_fetch_assoc($result3)) { $xml .= ''; } $xml .= ''; } /* keys */ $q = get_SQL_SHOW_INDEX_FROM($table); $result2 = cubrid_mysql_query_native($q, $conn); $idx = array(); while ($row = cubrid_mysql_fetch_assoc($result2)) { $name = $row["Key_name"]; if (array_key_exists($name, $idx)) { $obj = $idx[$name]; } else { $t = "INDEX"; if ($row["Non_unique"] == "0") { $t = "UNIQUE"; } if(columnIsPK($conn, $table, $row["Column_name"])) { $t = "PRIMARY"; } $obj = array( "columns" => array(), "type" => $t ); } $obj["columns"][] = $row["Column_name"]; $idx[$name] = $obj; } foreach ($idx as $name=>$obj) { $xml .= ''; for ($i=0;$i'; } $xml .= ''; } $xml .= "
"; } } else { $xml = ""; } $arr[] = $xml; $arr[] = '
'; return implode("\n",$arr); } /////////////////////////////////////////////////////////////////////////////////////////////////////// $a = (isset($_GET["action"]) ? $_GET["action"] : false); switch ($a) { case "list": setup_saveloadlist(); $conn = connect(); $sql = "SELECT `keyword`, DATE_FORMAT(`dt`, '%d-%M-%Y %H:%i') AS dt FROM ".TABLE." ORDER BY dt DESC"; $result = cubrid_mysql_query_native($sql, $conn); if(cubrid_mysql_num_rows($result) > 0) { while ($row = cubrid_mysql_fetch_assoc($result)) { echo $row["keyword"]." [".$row["dt"]."]\n"; } } break; case "save": setup_saveloadlist(); $conn = connect(); $keyword = (isset($_GET["keyword"]) ? $_GET["keyword"] : ""); $keyword = cubrid_mysql_real_escape_string($keyword); $data = file_get_contents("php://input"); if (get_magic_quotes_gpc() || get_magic_quotes_runtime()) { $data = stripslashes($data); } $data = cubrid_mysql_real_escape_string($data); $r = cubrid_mysql_query_native("SELECT * FROM ".TABLE." WHERE `keyword` = '".$keyword."'", $conn); if (cubrid_mysql_num_rows($r) > 0) { $res = cubrid_mysql_query_native("UPDATE ".TABLE." SET `data` = '".$data."', `dt`=SYS_TIMESTAMP WHERE `keyword` = '".$keyword."'", $conn); } else { $res = cubrid_mysql_query_native("INSERT INTO ".TABLE." (`keyword`, `data`, `dt`) VALUES ('".$keyword."', '".$data."', SYS_TIMESTAMP)", $conn); } if (!$res) { header("HTTP/1.0 500 Internal Server Error"); } else { header("HTTP/1.0 201 Created"); } break; case "load": setup_saveloadlist(); $conn = connect(); $keyword = (isset($_GET["keyword"]) ? $_GET["keyword"] : ""); $keyword = cubrid_mysql_real_escape_string($keyword); $result = cubrid_mysql_query_native("SELECT `data` FROM ".TABLE." WHERE `keyword` = '".$keyword."'", $conn); $row = cubrid_mysql_fetch_assoc($result); if (!$row) { header("HTTP/1.0 404 Not Found"); } else { header("Content-type: text/xml"); echo $row["data"]; } break; case "import": setup_import(); $conn = connect(); header("Content-type: text/xml"); $txt = import($conn); echo $txt; break; default: header("HTTP/1.0 501 Not Implemented"); } ?>