JSQL , SQLProxy 的 php 版本代码

 

 

下面是JSQL.OnServer() 用到的SQLProxy代理的php版本代码:

 

 

<?php
date_default_timezone_set("PRC");
$host = stripslashes($_POST['host']);
if($host == null) { $host = 'localhost'; };
$user = stripslashes($_POST['user']);
if($user == null) { $user = 'root'; };
$password = stripslashes($_POST['password']);
if($password == null) { $password = ''; };
$database = stripslashes($_POST['database']);
if($database == null) { die('DataBase Name Needed!'); };
$SQL = stripslashes($_POST['SQL']);
if($SQL == null) { die('SQL Needed!'); };
$db = mysql_connect($host, $user, $password);
mysql_select_db($database,$db);
if(preg_match('/\s*select/i',$SQL)) {
	$result = mysql_query($SQL,$db);
	$rowcount = mysql_num_rows($result);
	if($rowcount<1){
		printf("null");
	}
	else
	{
		$fieldsarr = array();
		while ($field = mysql_fetch_field($result)) {	
			$fieldsarr[] = $field;
		};
		printf("[");
		$rowindex = 0;
		while ($row = mysql_fetch_row($result)) {
			$rowindex++ ;
			printf("{");
			$fieldcount = count($fieldsarr);
			for($i=0;$i<$fieldcount;$i++) {
				$fieldname = $fieldsarr[$i]->name;
				$fieldtype = $fieldsarr[$i]->type;
				$fieldvalue = $row[$i];
				if($fieldvalue==null) {
					$fieldvalue = "null";
				}
				else if($fieldtype=='string'){
					$fieldvalue = "'$fieldvalue'";
				}
				else if($fieldtype=='datetime'){	
					$fieldvalue = str_replace("-","/",$fieldvalue);
					$fieldvalue = "new Date('$fieldvalue')";
				}
				printf("%s : %s ", $fieldname, $fieldvalue);
				//printf($fieldtype);
				if($i<$fieldcount-1) {
					printf(" , ");
				};
			};
			printf("}");
			if($rowindex<$rowcount) {
				printf(" , ");
			};
		};
		printf("]");	
	};
	mysql_free_result($result);

}
else if(preg_match('/\s*insert/i',$SQL)) {
	mysql_query($SQL,$db);
	$effectrows = mysql_affected_rows();
	if($effectrows==1) {
		printf("true");
	} else {
		printf("false");
	};
}
else if(preg_match('/\s*update/i',$SQL)) {
	mysql_query($SQL,$db);
	$effectrows = mysql_affected_rows();
	printf($effectrows);
}
else if(preg_match('/\s*delete/i',$SQL)) {
	mysql_query($SQL,$db);
	$effectrows = mysql_affected_rows();
	printf($effectrows);
}
else if(preg_match('/\s*create\s+table/i',$SQL)) {
	if(mysql_query($SQL,$db)) {
		printf("true");
	} else {
		printf("false");
	};
}
else if(preg_match('/\s*drop\s+table/i',$SQL)) {
	if(mysql_query($SQL,$db)) {
		printf("true");
	} else {
		printf("false");
	};
}
else {
	printf("command not supported yet!");
};
mysql_close($db);
?>

 

posted on 2010-05-02 19:05  gongji  阅读(157)  评论(0编辑  收藏  举报

导航