Hello,
firstly, i am a beginner, 2nd , Thank you google translate ;-). it's
URGENT Thank you.i want to write a handler for relational database.
This handler will load a database and provide an opportunity for the
user to perform read operations, additions and deletions (see list of
commands). The user can then enter a number of commands that will be
interpreted by the manager.
The file format of the database is free. It has you find the format
easier to manage. In other words, we do not require a loader file
database made by another group.
Program Synopsis:
Program Synopsis:
$> Php. / db.php
Usage:. / db.php [-i inputfile] [-o outputfile] dbfile
$>
* Mandatory Parameter:
o 'dbfile': path to the file that contains the database on
which to work.
* Options:
o-i 'filename': specifies standard input program. If this
option is not enabled, standard input program is the system (stdin).
o-o 'filename': specifies the standard output of the
program. If this option is not enabled, standard output of the program
is that the system (stdout).
Once the program starts, it waits on its standard input commands that
execute if they sound good. The program ends when it encounters the
QUIT command or if the input stream reaches EOF.
Orders:
All orders are delineated by a semicolon ';'. An order can be multiple
lines. If a syntax error is detected, the program displays the message
'syntax error' and continues to await further orders.
QUIT
----------------------------------------------------------------------------
Exits the program.
Synopsis:
QUIT;
CREATE TABLE
CREATE TABLE creates a table in the database.
Synopsis:
CREATE TABLE table_name
(
name_col_1 type [OPTIONS]
name_col_2 type [OPTIONS]
...
);
* 'Table_name': table name to create.
* 'name_col_1': column name to create.
* 'Type': data type of column.
Possible types:
o integer
o float
o bool
o string
* [Options]: Optional.
o primary_key: defines the primary key of the table. (It can
not have one)
o not_null: Defines a field as being necessarily different
from NULL
The name, type and different options are separated by one or more
tabs.
In our database, a table should always have a single primary key.
Example:
CREATE TABLE customers
(
id integer primary_key,
name not_null string,
surname string,
age integer
);
-> Table 'customers' created.
The program should display a message informing the user if the
instruction went well.
If the table already exists, the command will display an error.
DESC
Used to describe a table in the database.
Synopsis
DESC table_name;
* 'Table_name': table name to describe.
Example:
...
DESC customers;
------- TABLE 'customers' -------
'id' integer primary_key
'name' string not_null
'surname' string
'age' integer
------- TABLE 'customers' -------
...
INSERT
----------------------------------------------------------------------------
The INSERT command adds a record in a table.
Synopsis:
INSERT table_name
(
name_col = val [...]
);
* 'Table_name': name of the table or insert data
* 'Col_name': name of the column.
* 'Val': value of the column.
If during an insert a column has no assigned value, NULL is written.
If this column can be NULL, an error is generated.
If a primary key is duplicated, the program displays an error and does
not realize the recording. Examples:
INSERT Customers
(
id = 1
name = dupond,
surname = jeans
age = 24
);
-> Insert done.
INSERT Customers
(
id = 42
name = "name with spaces"
surname = jeans
age = 24
);
-> Insert done.
INSERT Customers
(
id = 2
surname = stone
);
-> Error: Column 'name' can not be null.
INSERT Customers
(
id = 1
name = smith,
surname = stone
);
-> Error: duplicate primary key 'id'.
TRUNCATE
----------------------------------------------------------------------------
The TRUNCATE command erases all records in a table (ie the drain).
Synopsis:
TRUNCATE table_name;
* 'Table_name': table name is empty.
Example:
TRUNCATE customers;
-> Table 'customers' is truncate.
If the table does not exist, the statement displays an error.
DROP
The DROP can destroy a table and thus all his recordings.
Synopsis:
DROP tablename;
* 'Table_name': table name was erased.
If the table does not exist, the statement displays an error.
DELETE
The DELETE command can delete records from a table that match one or
more conditions.
Synopsis:
DELETE
FROM table_name
WHERE condition
[AND condition2 ...];
* 'Table_name': table name on which to perform the treatment.
* 'Condition': a condition for the selection of elements (see the
conditions.)
Examples:
DELETE
FROM customers
WHERE id = 1;
-> 1 row (s) deleted.
DELETE
FROM customers
WHERE name LIKE '% to'
AND Pname = 'john';
-> 0 row (s) deleted.
If the table does not exist, the statement displays an error.
SELECT
----------------------------------------------------------------------------
This command displays information from the database according to
criteria of selection.
Synopsis:
SELECT col_1 [, col2 ...]
FROM name_table_1 [, name_table_2 ...]
[WHERE condition_1]
[AND condition_2 ...]
[ORDER BY col_tri [DESC]];
* Col_x name of the column display. May be replaced by '*' and
displays it in this case all the columns / tables (s) question (s).
* name_table_x name of the table concerned by the treatment.
* Condition_x: conditions to filter the results (see chapter on
conditions)
* ORDER BY col_tri [DESC]: Allows results in a column in ascending
or descending when DESC is specified.
Examples:
SELECT id, name
FROM customers;
-> Result: 2 row (s)
id name
--------------------------
1 smith
2 dupond
--------------------------
SELECT * FROM customers
WHERE id> 0
ORDER BY name;
-> Result: 4 row (s)
id name age Pname
--------------------------------------------------
5 Abido laurent 24
2 dupond jean 25
1 smith stone 25
Zorro 8 NULL NULL
--------------------------------------------------
SELECT clients.name, villes.cp
FROM customers, cities
WHERE clients.villeid = villes.id
AND clients.id = 42;
-> Result: 1 row (s)
cp name
--------------------------------------------------
Plop 94,500
--------------------------------------------------
The command will display the number of records that matchent, then
these records
If the table does not exist, the statement displays an error.
Conditions
A WHERE condition or AND (or even GOLD bonus) are always related 2
operands separated by an operator. The operands may be columns or
static data.
Example:
WHERE client.id> = 1
AND clients.ville = ville.id
If the command connects more than 2 tables, the column name is
preceded by the name of the table.
The possible operators are:
* =: Equality
* NOT: not equality
* <: Less than
*>: Higher
* <=: Less than or equal
*> =: Greater than or equal
* LIKE: match a pattern. So the 2nd operand is a string that is a
pattern.
The magic of this pattern are:
o '%': replace 0 or more characters, and what are
quelqu'ils. (either REGEXP '%' <=> ".*")
o '_' (underscore): replaces a single character.
o You do not handle the fact of backslashes these special
characters
My first code :
_________________
#!/usr/bin/php
<?php
function GetNextLine()
{
$line = rtrim(fgets(STDIN));
if (feof(STDIN))
return (false);
return ($line);
}
$arg = $_SERVER['argv'][1];
if ($arg== NULL)
{
echo "Usage: ./bdphp.php [-i inputfile] [-o outputfile] dbfile";
echo "\n";
}
function FunWrite()
{
$i=0;
while($a != "QUIT;")
{
echo "\n";
$a=GetNextLine();
$i++;
echo "syntax error";
}
}
FunWrite();
?>
--
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=.