Makes sense, because you define a variable that you never set via execute() or bindParam().
And do not look at any JS error when debugging PHP. Set your PDO to throw exceptions.
What you say makes no sense. There is :acc_id, which you never provide any value for the statement. There is $acc_id, which will never be evaluated within single quotes. There’s an error in core.js, that has nothing to do with PHP or SQL. Until you do not get any value, you have nothing for a later insert, which is not part of your original post. You did not say anything on the debugging tip.