driver_test.php

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 1,687 行 · 第 1/4 页

PHP
1,687
字号
					$success=0;				else				{					$row=1234;					$data=array();					$data["user_name"]="user_$row";					$data["user_password"]="somepassword";					$data["subscribed"]=$row % 2;					$data["user_id"]=$row;					$data["quota"]=strval($row/100);					$data["weight"]=sqrt($row);					$data["access_date"]=MetabaseToday();					$data["access_time"]=MetabaseTime();					$data["approved"]=MetabaseNow();					if(($prepared_query=MetabasePrepareQuery($database,"INSERT INTO users (user_name,user_password,subscribed,user_id,quota,weight,access_date,access_time,approved) VALUES (?,?,?,?,?,?,?,?,?)")))					{						if(!InsertTestValues($database,$prepared_query,$data))						{							$success=0;						}						MetabaseFreePreparedQuery($database,$prepared_query);						if($success)						{							if(!($result=MetabaseQuery($database,"SELECT user_name,user_password,subscribed,user_id,quota,weight,access_date,access_time,approved FROM users")))								$success=0;							else							{								$fields=array(									"user_name",									"user_password",									"subscribed",									"user_id",									"quota",									"weight",									"access_date",									"access_time",									"approved"								);								if(($columns=MetabaseNumberOfColumns($database,$result))==count($fields))								{									if(($success=MetabaseGetColumnNames($database,$result,$column_names)))									{										if($columns==count($column_names))										{											for($column=0;$column<$columns;$column++)											{												if($column_names[$fields[$column]]!=$column)												{													$pass=0;													echo "FAILED!$eol";													$failed++;													echo "Test $test: the query result column \"".$fields[$column]."\" was returned in position ".$column_names[$fields[$column]]." unlike $column as expected$eol";												}											}										}										else										{											$pass=0;											echo "FAILED!$eol";											$failed++;											echo "Test $test: the query result returned a number of ".count($column_names)." column names unlike $columns as expected$eol";										}									}								}								else								{									if($columns==-1)										$success=0;									else									{										$pass=0;										echo "FAILED!$eol";										$failed++;										echo "Test $test: the query result returned a number of $columns columns unlike ".count($fields)." as expected$eol";									}								}								MetabaseFreeResult($database,$result);							}						}						if($success						&& $pass)						{							$passed++;							echo "OK.$eol";						}					}					else						$success=0;				}			}			if(IsSet($tests["nulls"])			&& $success)			{				$test="nulls";				echo "Testing storage and retrieval of NULL values... ";				flush();				$pass=1;				$test_values=array(					"test",					"NULL",					"null",					""				);				for($test_value=0;$success && $test_value<=count($test_values);$test_value++)				{					$is_null=($test_value==count($test_values));					if($is_null)						$value="NULL";					else						$value=MetabaseGetTextFieldValue($database,$test_values[$test_value]);					if(MetabaseQuery($database,"DELETE FROM users")					&& MetabaseQuery($database,"INSERT INTO users (user_name,user_password,user_id) VALUES ($value,$value,0)")					&& ($result=MetabaseQuery($database,"SELECT user_name,user_password FROM users")))					{						if(MetabaseEndOfResult($database,$result))						{							if($pass)							{								$pass=0;								$failed++;								echo "FAILED!$eol";							}							echo "Test $test: the query result seems to have reached the end of result earlier than expected$eol";						}						else						{							if(MetabaseResultIsNull($database,$result,0,0)!=$is_null)							{								if($pass)								{									$pass=0;									$failed++;									echo "FAILED!$eol";								}								if($is_null)									echo "Test $test: a query result column is not NULL unlike what was expected$eol";								else									echo "Test $test: a query result column is NULL although it was expected to be \"".$test_values[$test_value]."\"$eol";							}							else							{								if(MetabaseResultIsNull($database,$result,0,1)!=$is_null)								{									if($pass)									{										$pass=0;										$failed++;										echo "FAILED!$eol";									}									if($is_null)										echo "Test $test: a query result column is not NULL unlike what was expected$eol";									else										echo "Test $test: a query result column is NULL although it was expected to be \"".$test_values[$test_value]."\"$eol";								}								else								{									if(!MetabaseEndOfResult($database,$result))									{										if($pass)										{											$pass=0;											$failed++;											echo "FAILED!$eol";										}										echo "Test $test: the query result did not seem to have reached the end of result as expected after testing only if columns are NULLs$eol";									}								}							}						}						MetabaseFreeResult($database,$result);					}					else					{						$success=0;						break;					}				}				if($success				&& $pass)				{					$passed++;					echo "OK.$eol";				}			}			if(IsSet($tests["escapesequences"])			&& $success)			{				$test="escapesequences";				echo "Testing escaping text values with special characters... ";				flush();				$pass=1;				$test_strings=array(					"'",					"\"",					"\\",					"%",					"_",					"''",					"\"\"",					"\\\\",					"\\'\\'",					"\\\"\\\""				);				for($string=0;$string<count($test_strings);$string++)				{					$value=MetabaseGetTextFieldValue($database,$test_strings[$string]);					if(!MetabaseQuery($database,"DELETE FROM users")					|| !MetabaseQuery($database,"INSERT INTO users (user_name,user_password,user_id) VALUES ($value,$value,0)")					|| !($result=MetabaseQuery($database,"SELECT user_name,user_password FROM users")))						$success=0;					else					{						if(MetabaseEndOfResult($database,$result))						{							$pass=0;							echo "FAILED!$eol";							$failed++;							echo "Test $test: the query result seems to have reached the end of result earlier than expected$eol";						}						else						{							$field="user_name";							if(strcmp($value=MetabaseFetchResult($database,$result,0,$field),$test_strings[$string]))							{								$pass=0;								echo "FAILED!$eol";								$failed++;								echo "Test $test: the value retrieved for field \"$field\" (\"$value\") doesn't match what was stored (".$test_strings[$string].")$eol";							}							else							{								$field="user_password";								if(strcmp($value=MetabaseFetchResult($database,$result,0,$field),$test_strings[$string]))								{									$pass=0;									echo "FAILED!$eol";									$failed++;									echo "Test $test: the value retrieved for field \"$field\" (\"$value\") doesn't match what was stored (".$test_string[$string].")$eol";								}								else								{									if(!MetabaseEndOfResult($database,$result))									{										$pass=0;										echo "FAILED!$eol";										$failed++;										echo "Test $test: the query result did not seem to have reached the end of result as expected after testing only if text fields values are correctly escaped$eol";									}								}							}						}						MetabaseFreeResult($database,$result);					}					if(!$success					|| !$pass)						break;				}				if($success				&& $pass)				{					$passed++;					echo "OK.$eol";				}			}			if(IsSet($tests["ranges"])			&& $success)			{				if(MetabaseSupport($database,"SelectRowRanges"))				{					$test="ranges";					echo "Testing paged queries... ";					flush();					$pass=1;					if(!MetabaseQuery($database,"DELETE FROM users"))						$success=0;					else					{						if(($prepared_query=MetabasePrepareQuery($database,"INSERT INTO users (user_name,user_password,subscribed,user_id,quota,weight,access_date,access_time,approved) VALUES (?,?,?,?,?,?,?,?,?)")))						{							$data=array();							for($total_rows=5,$row=0;$row<$total_rows;$row++)							{								$data[$row]["user_name"]="user_$row";								$data[$row]["user_password"]="somepassword";								$data[$row]["subscribed"]=$row % 2;								$data[$row]["user_id"]=$row;								$data[$row]["quota"]=sprintf("%.2f",strval($row/100));								$data[$row]["weight"]=sqrt($row);								$data[$row]["access_date"]=MetabaseToday();								$data[$row]["access_time"]=MetabaseTime();								$data[$row]["approved"]=MetabaseNow();								if(!InsertTestValues($database,$prepared_query,$data[$row]))								{									$success=0;									break;								}							}							MetabaseFreePreparedQuery($database,$prepared_query);							if($success)							{								for($rows=2,$start_row=0;$pass && $start_row<$total_rows;$start_row+=$rows)								{									MetabaseSetSelectedRowRange($database,$start_row,$rows);									if(!($result=MetabaseQuery($database,"SELECT user_name,user_password,subscribed,user_id,quota,weight,access_date,access_time,approved FROM users ORDER BY user_id")))									{										$success=0;										break;									}									else									{										for($row=0;$row<$rows && $row+$start_row<$total_rows;$row++)										{											if(VerifyFetchedValues($database,$result,$row,$data[$row+$start_row],$value,$field))											{												$pass=0;												echo "FAILED!$eol";												$failed++;												echo "Test $test: the value retrieved from row ".($row+$start_row)." for field \"$field\" ($value) doesn't match what was stored (".$data[$row+$start_row][$field].")$eol";												break;											}										}										if($pass)										{											if(!MetabaseEndOfResult($database,$result))											{												$pass=0;												echo "FAILED!$eol";												$failed++;												echo "Test $test: the query result did not seem to have reached the end of result as expected starting row $start_row after fetching upto row $row$eol";											}										}										MetabaseFreeResult($database,$result);									}								}							}							if($success)							{								for($rows=2,$start_row=0;$pass && $start_row<$total_rows;$start_row+=$rows)								{									MetabaseSetSelectedRowRange($database,$start_row,$rows);									if(!($result=MetabaseQuery($database,"SELECT user_name,user_password,subscribed,user_id,quota,weight,access_date,access_time,approved FROM users ORDER BY user_id")))									{										$success=0;										break;									}									else									{										if(($result_rows=MetabaseNumberOfRows($database,$result))>$rows)										{											$pass=0;											echo "FAILED!$eol";											$failed++;											echo "Test $test: expected a result of no more than $rows but the returned number of rows is $result_rows";										}										else										{											for($row=0;$row<$result_rows;$row++)											{												if(MetabaseEndOfResult($database,$result))												{													$pass=0;													echo "FAILED!$eol";													$failed++;													echo "Test $test: the query result seem to have reached the end of result at row $row that is before $result_rows as expected$eol";													break;												}												if(VerifyFetchedValues($database,$result,$row,$data[$row+$start_row],$value,$field))												{													$pass=0;													echo "FAILED!$eol";													$failed++;													echo "Test $test: the value retrieved from row ".($row+$start_row)." for field \"$field\" ($value) doesn't match what was stored (".$data[$row+$start_row][$field].")$eol";													break;												}											}										}										if($pass)										{											if(!MetabaseEndOfResult($database,$result))											{												$pass=0;												echo "FAILED!$eol";												$failed++;												echo "Test $test: the query result did not seem to have reached the end of result as expected$eol";											}										}										MetabaseFreeResult($database,$result);									}								}							}							if($success							&& $pass)							{								$passed++;								echo "OK.$eol";							}						}						else							$success=0;					}				}				else					echo "Selecting rows ranges is not supported.$eol";			}			if(IsSet($tests["sequences"])			&& $success)			{				if(MetabaseSupport($database,"Sequences"))				{					$test="sequences";					echo "Testing sequences... ";					flush();					$pass=1;					for($start_value=1;$success && $pass && $start_value<4;$start_value++)					{						$sequence_name="test_sequence_$start_value";						MetabaseDropSequence($database,$sequence_name);						if(($success=MetabaseCreateSequence($database,$sequence_name,$start_value)))

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?