/* (non-Javadoc) * example of query * $stmt = $db->prepare("UPDATE table SET name=? WHERE id=?"); * $stmt->execute(array($name, $id)); * $affected_rows = $stmt->rowCount(); * @see WriterInterface.GenericWriterInterface#executeSqlQuery(java.lang.String, java.lang.String, java.util.List) */ @Override public void executeSqlQuery(String path, String query, List<Variable> queryParameters) { File f; try { f = FileWriterImpl.getInstace().fileCreate(path); } catch (IOException ex) { Logger.getLogger(PHPGenericWriterImpl.class.getName()).log(Level.SEVERE, null, ex); return; } FileWriterImpl.getInstace().writeLine("$dbn->query($sqlQuery);", f); String phpCode = "try {\n" + "$sqlQuery=\"" + query + "\"; \n" + " $stmt = $dbn->prepare($sqlQuery); \n"; boolean useArrayOfParameters = false; if (queryParameters != null) { if (queryParameters.size() > 0) { useArrayOfParameters = true; } } if (useArrayOfParameters) { phpCode += "$stmt->execute(array("; int paramNumber = 0; for (Variable variable : queryParameters) { if (paramNumber != 0) { phpCode += ", "; } phpCode += "$" + variable.getName() + " "; } phpCode += "));\n"; } else { phpCode += "$stmt->execute();"; } phpCode += "} catch(PDOException $ex) {\n" + " echo \"An Error occured!\"; \n" + "}"; FileWriterImpl.getInstace().writeLine(phpCode, f); }
@Override public void useDatabase(String alias, String path) { File f; try { f = FileWriterImpl.getInstace().fileCreate(path); } catch (IOException ex) { Logger.getLogger(PHPGenericWriterImpl.class.getName()).log(Level.SEVERE, null, ex); return; } // get database config DatabaseConfig db = DBManagerImpl.getInstace().getDatabaseConfig(alias); // include of connection details FileWriterImpl.getInstace().writeLine("include '" + db.getConfigFileName() + "';", f); // PDO connection to database String phpCode = "/* Connect to an ODBC database using driver invocation */\n" + "$_dsn = 'mysql:dbname=$_db_config_databaseName;host=$_db_config_host';\n" + "\n" + "try {\n" + " $dbh = new PDO($_dsn, $_db_config_user, $_db_config_password);\n" + "} catch (PDOException $e) {\n" + " echo 'Connection failed: ' . $e->getMessage();\n" + "}"; FileWriterImpl.getInstace().writeLine(phpCode, f); }
@Override public void printVariableAsXML(String path, String variableName) { String line = "echo xmlrpc_encode(\"$" + variableName + "\");"; try { FileWriterImpl.getInstace().writeLine(line, FileWriterImpl.getInstace().fileCreate(path)); } catch (IOException e) { e.printStackTrace(); } }
@Override public void beginTransaction(String path) { String phpCode = "try {\n" + " $dbn->beginTransaction();\n"; try { FileWriterImpl.getInstace().writeLine(phpCode, FileWriterImpl.getInstace().fileCreate(path)); } catch (IOException e) { e.printStackTrace(); } }
@Override public void EOF(String path) { File f; try { f = FileWriterImpl.getInstace().fileCreate(path); } catch (IOException ex) { Logger.getLogger(PHPGenericWriterImpl.class.getName()).log(Level.SEVERE, null, ex); return; } FileWriterImpl.getInstace().writeLine("?>", f); }
@Override public void getLastInsertedIdIntoVariable(String path, String resultVariableName) throws VariableManagerException { File f; try { f = FileWriterImpl.getInstace().fileCreate(path); } catch (IOException ex) { Logger.getLogger(PHPGenericWriterImpl.class.getName()).log(Level.SEVERE, null, ex); return; } String phpCode = "$" + resultVariableName + " = $dbn->lastInsertId();"; FileWriterImpl.getInstace().writeLine(phpCode, f); VariableManagerImpl.getInstace().addVariable(resultVariableName, path); }
@Override public void writeArithmeticAndGetResultInVariable( String path, String arithmetic, List<Variable> variableList, String resultVariableName) { List<String> values = new ArrayList<>(); for (Variable variable : variableList) { values.add("$" + variable.getName()); } String arithmeticLine = String.format(arithmetic.replace("?", "%s"), values.toArray()); String line = "$" + resultVariableName + "=" + arithmeticLine + ";"; try { FileWriterImpl.getInstace().writeLine(line, FileWriterImpl.getInstace().fileCreate(path)); } catch (IOException e) { e.printStackTrace(); } }
@Override public void countResultRowsNumberAndGetResultInVariable( String path, String rowsVariableName, String countResultVariableName) throws VariableManagerException { File f; try { f = FileWriterImpl.getInstace().fileCreate(path); } catch (IOException ex) { Logger.getLogger(PHPGenericWriterImpl.class.getName()).log(Level.SEVERE, null, ex); return; } String phpCode = "$" + countResultVariableName + " = $" + rowsVariableName + "->rowCount();"; FileWriterImpl.getInstace().writeLine(phpCode, f); VariableManagerImpl.getInstace().addVariable(countResultVariableName, path); }
@Override public void executeSqlUpdateAndGetAffectedRowsNumberIntoVariable( String path, String query, List<Variable> queryParameters, String resultVariableName) throws VariableManagerException { executeSqlQuery(path, query, queryParameters); try { FileWriterImpl.getInstace() .writeLine( "$" + resultVariableName + "= $stmt->rowCount();", FileWriterImpl.getInstace().fileCreate(path)); } catch (IOException e) { e.printStackTrace(); } VariableManagerImpl.getInstace().addVariable(resultVariableName, path); }
@Override public void executeSqlQueryAndGetResultInVariable( String path, String query, List<Variable> queryParameters, String variableName) throws VariableManagerException { executeSqlQuery(path, query, queryParameters); try { FileWriterImpl.getInstace() .writeLine( "$" + variableName + "= $stmt->fetchAll(PDO::FETCH_ASSOC);", FileWriterImpl.getInstace().fileCreate(path)); } catch (IOException e) { e.printStackTrace(); } VariableManagerImpl.getInstace().addVariable(variableName, path); }
@Override public void endTransaction(String path) { String phpCode = " $dbn->commit();\n" + "} catch(PDOException $ex) {\n" + " //Something went wrong rollback!\n" + " $dbn->rollBack();\n" + " echo $ex->getMessage();\n" + "}"; try { FileWriterImpl.getInstace().writeLine(phpCode, FileWriterImpl.getInstace().fileCreate(path)); } catch (IOException e) { e.printStackTrace(); } }
private void printInputVars(String path, List<String> input, String method) throws VariableManagerException { File f; try { f = FileWriterImpl.getInstace().fileCreate(path); } catch (IOException ex) { Logger.getLogger(PHPGenericWriterImpl.class.getName()).log(Level.SEVERE, null, ex); return; } FileWriterImpl.getInstace().writeLine("if(" + method + "){", f); for (String var : input) { String line = "\t$" + var + " = $" + method + "[\"" + var + "\"];"; FileWriterImpl.getInstace().writeLine(line, f); VariableManagerImpl.getInstace().addVariable(var, path); } FileWriterImpl.getInstace().writeLine("}", f); }
@Override public void addDatabase( String alias, String host, String port, String user, String passsword, String databaseName) throws DBManagerException { String filename = "config/db_" + alias + ".php"; header(filename); File f; try { f = FileWriterImpl.getInstace().fileCreate(filename); } catch (IOException ex) { Logger.getLogger(PHPGenericWriterImpl.class.getName()).log(Level.SEVERE, null, ex); return; } FileWriterImpl.getInstace().writeLine("$_db_config_host=\"" + host + ";", f); FileWriterImpl.getInstace().writeLine("$_db_config_port=\"" + port + ";", f); FileWriterImpl.getInstace().writeLine("$_db_config_user=\"" + user + ";", f); FileWriterImpl.getInstace().writeLine("$_db_config_password=\"" + passsword + ";", f); FileWriterImpl.getInstace().writeLine("$_db_config_databaseName=\"" + databaseName + ";", f); EOF(filename); DatabaseConfig databaseConfig = new DatabaseConfig(); databaseConfig.setAlias(alias); databaseConfig.setConfigFileName(filename); databaseConfig.setDatabaseName(databaseName); databaseConfig.setPassword(passsword); databaseConfig.setPort(port); databaseConfig.setURL(host); databaseConfig.setUser(user); DBManagerImpl.getInstace().addDatabaseConfig(databaseConfig); }