mikecao / sparrow

A simple database toolkit for PHP
MIT License
289 stars 68 forks source link

question #10

Closed Stephan123 closed 9 years ago

Stephan123 commented 10 years ago

Hello!

I did some test with 'sparrow' is performed. Here is my database access values ​​and the columns of the table 'test'.

include_once('./library/sparrow/sparrow.php');

$connect = array( 'type' => 'mysql', 'hostname' => 'localhost', 'database' => 'test', 'username' => 'test', 'password' => 'test' );

$cols = array( 'name', 'vorname' );


$database = new sparrow_sparrow(); $database->setDb($connect); $database->from('test'); $database->select($cols); $database->where("name = 'eee'"); $rows = $database->many();

$query = $database->last_query;

echo $query;

SELECT name,vorname FROM test

Where are the select columns ???


$database = new sparrow_sparrow(); $database->setDb($connect); $database->from('test'); // $database->select($cols); $database->where("name = 'eee'"); $rows = $database->many();

$query = $database->last_query;

echo $query;

SELECT * FROM test WHERE name = 'eee'

O.K.


$database = new sparrow_sparrow(); $database->setDb($connect); $database->from('test'); $database->select($cols); // $database->where("name = 'eee'"); $rows = $database->many();

$query = $database->last_query;

echo $query;

SELECT name,vorname FROM test

O.K.


$database = new sparrow_sparrow(); $database->setDb($connect); $database->from('test'); // $database->select($cols); $database->where("name = 'eee' "); $database->where("vorname = 'eee' "); $rows = $database->many();

$query = $database->last_query;

echo $query;

Fatal error: Uncaught exception 'Exception' with message 'Database error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'vorname = 'eee'' at line 1' in C:\xampp\htdocs\flight\library\sparrow\sparrow.php on line 892


$database = new sparrow_sparrow(); $database->setDb($connect); $database->from('test'); $database->select($cols); $database->where("name", 'eee'); $database->where("vorname", 'eee'); $rows = $database->many();

$query = $database->last_query;

echo $query;

SELECT name,vorname FROM test

Where is the where clauses ???


$database = new sparrow_sparrow(); $database->setDb($connect); $database->from('test'); // $database->select($cols); $database->where("name = 'eee'"); $database->where("vorname = 'eee'"); $rows = $database->many();

$query = $database->last_query;

echo $query;

Uncaught exception 'Exception' with message 'Database error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'vorname = 'eee'' at line 1' in C:\xampp\htdocs\flight\library\sparrow\sparrow.php on line 892


I think 'sparrow' is a wonderful class. It must be improved some things. Sorry for my bad english.

Sincerely yours

Stephan

mikecao commented 10 years ago

You are not using it correctly. The select method should come after all your where clauses. Also, you don't need to pass a string to the where, they should be separate parameters, like this:

$db->where('name', 'eee');