подготовить ($ sql) -> выполнить () работает, но $ заявление-> выполнить () не

Если я использую следующее утверждение, мой код работает хорошо:

$statement = $this->pdo->prepare($sql)->execute();

Но если я использую следующие операторы, мой код не работает:

$statement = $this->pdo->prepare($sql);
$statement->execute();

У кого-нибудь есть идея, что я делаю не так или почему это так?

Вот мой полный код:

    public function deleteUser($pid_user){
/* DESCRIPTION
* delete an user an all his data
*
* PARAMETERS
*
* EXAMPLE
* deleteUser();
*/
try {

//begin transaction
$this->pdo->beginTransaction();

//define all tables to delete all entries from the overgiven user id
//name = name of the table
//column = column to identify the users entries
$tables = array();
$tables[0]["name"]      = "snsho_bittrex_apikey";
$tables[0]["column"]    = "fk_user";
$tables[1]["name"]      = "snsho_bittrex_balances";
$tables[1]["column"]    = "fk_user";
$tables[2]["name"]      = "snsho_bittrex_deposit_history";
$tables[2]["column"]    = "fk_user";
$tables[3]["name"]      = "snsho_bittrex_order_history";
$tables[3]["column"]    = "fk_user";
$tables[4]["name"]      = "snsho_bittrex_withdrawal_history";
$tables[4]["column"]    = "fk_user";
$tables[5]["name"]      = "snsho_user_settings";
$tables[5]["column"]    = "fk_user";
$tables[6]["name"]      = "snsho_user";
$tables[6]["column"]    = "pid_user";//do the queries
$sql = '';
foreach($tables as $key => $table){
$sql .= 'DELETE FROM ' . $table["name"] . ' WHERE ' . $table["column"] . ' = ' . $pid_user . ';';
}

//$statement = $this->pdo->prepare($sql)->execute();
$statement = $this->pdo->prepare($sql);
$statement->execute();

if($this->pdo->commit()){
echo "commited";
}else{
echo "commit failed";
}
return TRUE;
} catch (Exception $e) {
$this->adminMessages->setSingleError("Failed: " . $e->getMessage());
$this->pdo->rollBack();
return FALSE;
}
}

-1

Решение

Попробуйте выполнить без назначения.

$this->pdo->prepare($sql)->execute();

Это только возвращает истину или ложь.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector