How to delete a row from a SQL table?

user3706178 picture user3706178 · Dec 7, 2014 · Viewed 26.4k times · Source

I have a row that needs to be deleted from a SQL table via PHP. The table has 3 columns: id, Symbol, and Shares:

foreach ($rows as $row)
{
    if($row["Symbol"] === $_POST["symbol"])
    {
     // I tried these combinations, but none of them works:
     // $sql = ("DELETE FROM stocks WHERE id = ? $_SESSION[id]");        
     // $sql = ("DELETE row FROM stocks WHERE id = $_SESSION[id]");
     // $sql = ("DELETE * FROM stocks WHERE id = $_SESSION[id]");
     // $sql = ("DELETE id, Symbol, Shares FROM stocks WHERE id = $_SESSION[id]");
      // DELETE FROM stocks WHERE id = $_SESSION["id"];
    }
}

My program enters an if statement, which I checked. The condition is fulfilled, but the DELETE is not executed. How can I fix this?

Answer

Gordon Linoff picture Gordon Linoff · Dec 7, 2014

This syntax should work in any database:

DELETE FROM stocks WHERE id = XXX

I don't know what ? $_SESSION[id] is supposed to be doing. Try without the ?:

DELETE FROM stocks WHERE id = $_SESSION[id]

That said, you should parameterize your queries rather than putting arguments into the query string.