lawrence_dev
asked on
Transitioning to PDO/MySQL. Need help with INSERT statement.
I am having an issue with this insert statement. Do I have the params set up right? How do I handle a DUPLICATE KEY?
I am getting the following error:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
I am getting the following error:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
$query4 = $conn->query('SELECT subcatidexp1, catidexp1 FROM download');
while ($row4 = $query4->fetch(PDO::FETCH_ASSOC))
{
if ($row4['subcatidexp1']==0) {
continue;
} else if ($row4['subcatidexp1']=="") {
continue;
} else {
$statement = $conn->prepare('INSERT INTO category (category_id,parent_id) VALUES(:catid,:parentid)');
$params = array(':catid'=>$row4['subcatidexp1']);
$params = array(':parentid'=>$row4['catidexp1']);
$statement->execute($params);
}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks Gary. Beginning to understand this! It is a little different than previous PHP/MySQL, Thanks again for your help!
It's different but better and if you ever move to a different DB you can use the same code logic for MS-SQL etc.
Took me a week or two to get my head around everything. But was glad I went the PDO route in the end - research it online and you'll find PDO is the preferred method.
Took me a week or two to get my head around everything. But was glad I went the PDO route in the end - research it online and you'll find PDO is the preferred method.
You need to look at ON DUPLICATE KEY
But since this question isn't really about that I will leave it for the next question ;o)