[eluser]QuibaX[/eluser]
Hi,
I've been having an error and i just can't figure out how to fix it.
This function produces that error :
Code: function TransferActivated()
{
$webdb = $this->load->database('webdb', TRUE);
$manager = $this->load->database('manager', TRUE);
$activatedUsers = $webdb->query("SELECT * FROM users WHERE activated='1'");
if($activatedUsers->num_rows() > 0) -> Error ...
{
foreach($activatedUsers->result() as $row)
{
$password = md5($row->username . $row->password . 341765);
$manager->query("INSERT INTO accounts(username, password, email) VALUES('$row->username', '$password', '$row->email'");
}
}
$webdb->close();
$manager->close();
}
However, the following function does work and is almost done the same way.
Code: function GetNotActivatedUsers()
{
$webdb = $this->load->database('webdb', TRUE);
$query = $webdb->query("SELECT * FROM users WHERE activated IS NULL");
return $query->num_rows();
}
Can anyone help ?
Thanks,
QuibaX
[eluser]Twisted1919[/eluser]
I believe that here is the problem :
Code: $webdb = $this->load->database('webdb', TRUE);
$manager = $this->load->database('manager', TRUE);
you should do something like :
Code: function TransferActivated()
{
$webdb = $this->load->database('webdb', TRUE);
$activatedUsers = $webdb->query("SELECT * FROM users WHERE activated='1'");
if($activatedUsers->num_rows() > 0) -> Error ...
{
$manager = $this->load->database('manager', TRUE);
foreach($activatedUsers->result() as $row)
{
$password = md5($row->username . $row->password . 341765);
$manager->query("INSERT INTO accounts(username, password, email) VALUES('$row->username', '$password', '$row->email'");
}
}
$webdb->close();
$manager->close();
}
[eluser]QuibaX[/eluser]
[quote author="Twisted1919" date="1286642573"]I believe that here is the problem :
Code: $webdb = $this->load->database('webdb', TRUE);
$manager = $this->load->database('manager', TRUE);
you should do something like :
Code: function TransferActivated()
{
$webdb = $this->load->database('webdb', TRUE);
$activatedUsers = $webdb->query("SELECT * FROM users WHERE activated='1'");
if($activatedUsers->num_rows() > 0) -> Error ...
{
$manager = $this->load->database('manager', TRUE);
foreach($activatedUsers->result() as $row)
{
$password = md5($row->username . $row->password . 341765);
$manager->query("INSERT INTO accounts(username, password, email) VALUES('$row->username', '$password', '$row->email'");
}
}
$webdb->close();
$manager->close();
}
[/quote]
Yeah that was my first taught 2, but its strange as the doc says you can actually load 2 databases at the same time.
[eluser]OliverHR[/eluser]
Error is in the query:
It isn't returning anything.
Try :
Code: $activatedUsers = $webdb->query('SELECT * FROM users WHERE activated=1');
Notice number 1 not as string.
[eluser]QuibaX[/eluser]
[quote author="OliverHR" date="1286645615"]Error is in the query:
It isn't returning anything.
Try :
Code: $activatedUsers = $webdb->query('SELECT * FROM users WHERE activated=1');
Notice number 1 not as string.[/quote]
That's not a error in the query, and it does return what it should. '1' works perfectly. However, i did try it and it still gave the same error.
And @Twisted1919 : By doing that, nothing happens, so i guess the result is empty for some reason... However if i echo the results they do show up fine.
[eluser]OliverHR[/eluser]
When I say the error is in the query I mean , that you are not getting back an object after query your database.
Try debugging you database instances:
Code: $webdb = $this->load->database('webdb', TRUE);
$manager = $this->load->database('manager', TRUE);
echo '<pre>';
print_r($webdb);
print_r($manager);
echo '</pre>';
[eluser]QuibaX[/eluser]
Thanks for the responds poeple, it is solved.
Twisted hes answer was right, however it wasn't doing anything...
Code: $manager->query("INSERT INTO accounts(username, password, email) VALUES('$row->username', '$password', '$row->email'");
Notice i forgot a ) at the end...
Sorry, small mistake and never saw it.
Anyway, codeigniter never said anything about a query error, can i put that on somewhere ?
|