izniburak/pdox

UPDATE return false

Closed this issue · 5 comments

In my conditions I check if the query returns true.
But while the query is well executed in Mysql, Pdox returns false ...

Example Class :
`public function update($table, $paramname, $content, $token){

    $this->name = $paramname;
    $this->content = htmlspecialchars($content);
    $this->token = $token;

    $data = [
        $this->name => $content
    ];

    $quy = $this->database1->table($table)->where('active', 1)->update($data);

    if ($quy){

        return true;

    }else{

        return false;

    }
}`

Example Code :
`if (isset($_POST['token']) && isset($_POST['msg_title']) && isset($_POST['msg_content']))
{
$token = $_POST['token'];
$content = $_POST['msg_content'];
$content1 = $_POST['msg_title'];

$request = $config->update("settings", "msg_title", $content1, $token);

if ($request === true){

    $request1 = $config->update("settings", "msg_content", $content, $token);

    if ($request1 === true){

        $result['status'] = 42;
        $result['message'] = "Update with Success !";

        echo json_encode($result);

    }

    $result['status'] = 40;
    $result['message'] = "Problem with SQL request.";

    echo json_encode($result);

}else{

    die(var_dump($request));

    $result['status'] = 44;
    $result['message'] = "You are not authorized.";

    echo json_encode($result);
}

}`

Thanks for your help.

Ok $quy return 0 ...

Other error with basic test :

<h1>Database Error</h1><h4>Query: <em style="font-weight:normal;">"UPDATE SET site_name='Oulala' WHERE active = '1'"</em></h4><h4>Error: <em style="font-weight:normal;">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 'SET site_name='Oulala' WHERE active = '1'' at line 1</em></h4>

Hi @FlashModz ,
Actually, the methods like update or delete returns affected rows when the query is well executed. If there is an any error, you would get 'Database Error' message. So, your query is well executed but affetcted rows count is zero (0). Because, your datas which you used in the query, probably same in your database. Therefore, affected rows is zero (0).

Also, I advice to be careful these:

0 == false // true
0 === false // false
1 == true // true
1 === true // false

Details: http://php.net/manual/tr/types.comparisons.php

In the query in your last comment hasn't been specified table name. You are probably getting the error therefore.

Hi @FlashModz , do you still have a problem about this?

Hello @izniburak i'm currently testing :)