die("false"); } //check POST $table_name = null; $fields_count = 0; $foreign_keys_count = 0; if ($_POST) { $table_name = totally_escape($_POST["table_name"]); $fields_count = $_POST["fields_count"]; $foreign_keys_count = $_POST["foreign_keys_count"]; } if ($table_name == null) { die("false: bad table_name"); } //prepare statement $types_arr = sql_types_array(); //TODO: test table_name is one word or something $has_precision = array("NUMBER", "FLOAT", "INTERVAL YEAR TO MONTH", "INTERVAL DAY TO SECOND"); $has_length = array("NUMBER" => 38, "VARCHAR2" => 4000, "CHAR" => 2000, "TIMESTAMP" => -1, "INTERVAL DAY TO SECOND" => -1, "TIMESTAMP WITH TIME ZONE" => -1, "TIMESTAMP WITH LOCAL TIME ZONE" => -1, "RAW" => -1, "NCHAR" => 2000, "NVARCHAR2" => 4000); //lol that's where we use transactions: //COMMIT; //ends any other transactions //SET TRANSACTION NAME 'sal_update'; //start transaction //... //ROLLBACK; //if fail //COMMIT; //if success function compile_type_name($type, $precision, $length) { global $has_precision; global $has_length; if (!isset($type)) { return false;
return row; } function create_text_input(placeholder, id, name, onchange) { var input = document.createElement('input'); input.type = 'text'; input.placeholder = placeholder; input.id = id; input.name = name; input.onchange = onchange; return input; } function create_type_select(id, name, onchange) { var arr = <?php echo json_encode(sql_types_array()); ?> ; var input = document.createElement('select'); input.id = id; input.name = name; input.onchange = onchange; for(var v of arr) { var option = document.createElement('option'); option.value = v; option.innerHTML = v; input.appendChild(option); } return input; }