PDO Insert with Select Statement Error / Invalid parameter number [duplicate]












1
















This question already has an answer here:




  • When to use single quotes, double quotes, and back ticks in MySQL

    12 answers



  • My PDO Statement doesn't work

    1 answer




Doing the query manually in PHPMyAdmin



INSERT INTO productimages (ImageURL, productID)
VALUES('http://test.jpg', (SELECT id
FROM products
WHERE products.MPN = 'test'));


Works just fine.



But trying to use PDO...



try {
$sql = "INSERT INTO productimages (ImageURL, productID)
VALUES(':image_url', (SELECT id
FROM products
WHERE products.MPN = ':mpn'));";
$data = [
'image_url' => $image_url,
'mpn' => $mpn
];
$stmt = $conn->prepare($sql);
$stmt->execute($data);
}
catch(PDOException $e)
{
echo '<h2 style="color:red;">' . $e->getMessage() . '</h2>';
}


I am always getting this error:




SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens




How do I properly form this INSERT query to perform with PDO?










share|improve this question













marked as duplicate by Funk Forty Niner mysql
Users with the  mysql badge can single-handedly close mysql questions as duplicates and reopen them as needed.

StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;

$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');

$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 18 '18 at 22:58


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.














  • 1





    @FunkFortyNiner Thank you. That worked. Once I added backtick's (`) to the tables and columns, it performs correctly.

    – Brian Bruman
    Nov 18 '18 at 23:01








  • 1





    You're welcome Brian; always glad to see that the duplicate(s) helped in solving it yourself, cheers :)

    – Funk Forty Niner
    Nov 18 '18 at 23:02
















1
















This question already has an answer here:




  • When to use single quotes, double quotes, and back ticks in MySQL

    12 answers



  • My PDO Statement doesn't work

    1 answer




Doing the query manually in PHPMyAdmin



INSERT INTO productimages (ImageURL, productID)
VALUES('http://test.jpg', (SELECT id
FROM products
WHERE products.MPN = 'test'));


Works just fine.



But trying to use PDO...



try {
$sql = "INSERT INTO productimages (ImageURL, productID)
VALUES(':image_url', (SELECT id
FROM products
WHERE products.MPN = ':mpn'));";
$data = [
'image_url' => $image_url,
'mpn' => $mpn
];
$stmt = $conn->prepare($sql);
$stmt->execute($data);
}
catch(PDOException $e)
{
echo '<h2 style="color:red;">' . $e->getMessage() . '</h2>';
}


I am always getting this error:




SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens




How do I properly form this INSERT query to perform with PDO?










share|improve this question













marked as duplicate by Funk Forty Niner mysql
Users with the  mysql badge can single-handedly close mysql questions as duplicates and reopen them as needed.

StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;

$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');

$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 18 '18 at 22:58


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.














  • 1





    @FunkFortyNiner Thank you. That worked. Once I added backtick's (`) to the tables and columns, it performs correctly.

    – Brian Bruman
    Nov 18 '18 at 23:01








  • 1





    You're welcome Brian; always glad to see that the duplicate(s) helped in solving it yourself, cheers :)

    – Funk Forty Niner
    Nov 18 '18 at 23:02














1












1








1









This question already has an answer here:




  • When to use single quotes, double quotes, and back ticks in MySQL

    12 answers



  • My PDO Statement doesn't work

    1 answer




Doing the query manually in PHPMyAdmin



INSERT INTO productimages (ImageURL, productID)
VALUES('http://test.jpg', (SELECT id
FROM products
WHERE products.MPN = 'test'));


Works just fine.



But trying to use PDO...



try {
$sql = "INSERT INTO productimages (ImageURL, productID)
VALUES(':image_url', (SELECT id
FROM products
WHERE products.MPN = ':mpn'));";
$data = [
'image_url' => $image_url,
'mpn' => $mpn
];
$stmt = $conn->prepare($sql);
$stmt->execute($data);
}
catch(PDOException $e)
{
echo '<h2 style="color:red;">' . $e->getMessage() . '</h2>';
}


I am always getting this error:




SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens




How do I properly form this INSERT query to perform with PDO?










share|improve this question















This question already has an answer here:




  • When to use single quotes, double quotes, and back ticks in MySQL

    12 answers



  • My PDO Statement doesn't work

    1 answer




Doing the query manually in PHPMyAdmin



INSERT INTO productimages (ImageURL, productID)
VALUES('http://test.jpg', (SELECT id
FROM products
WHERE products.MPN = 'test'));


Works just fine.



But trying to use PDO...



try {
$sql = "INSERT INTO productimages (ImageURL, productID)
VALUES(':image_url', (SELECT id
FROM products
WHERE products.MPN = ':mpn'));";
$data = [
'image_url' => $image_url,
'mpn' => $mpn
];
$stmt = $conn->prepare($sql);
$stmt->execute($data);
}
catch(PDOException $e)
{
echo '<h2 style="color:red;">' . $e->getMessage() . '</h2>';
}


I am always getting this error:




SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens




How do I properly form this INSERT query to perform with PDO?





This question already has an answer here:




  • When to use single quotes, double quotes, and back ticks in MySQL

    12 answers



  • My PDO Statement doesn't work

    1 answer








php mysql pdo






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 18 '18 at 22:58









Brian BrumanBrian Bruman

34427




34427




marked as duplicate by Funk Forty Niner mysql
Users with the  mysql badge can single-handedly close mysql questions as duplicates and reopen them as needed.

StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;

$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');

$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 18 '18 at 22:58


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.









marked as duplicate by Funk Forty Niner mysql
Users with the  mysql badge can single-handedly close mysql questions as duplicates and reopen them as needed.

StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;

$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');

$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 18 '18 at 22:58


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.










  • 1





    @FunkFortyNiner Thank you. That worked. Once I added backtick's (`) to the tables and columns, it performs correctly.

    – Brian Bruman
    Nov 18 '18 at 23:01








  • 1





    You're welcome Brian; always glad to see that the duplicate(s) helped in solving it yourself, cheers :)

    – Funk Forty Niner
    Nov 18 '18 at 23:02














  • 1





    @FunkFortyNiner Thank you. That worked. Once I added backtick's (`) to the tables and columns, it performs correctly.

    – Brian Bruman
    Nov 18 '18 at 23:01








  • 1





    You're welcome Brian; always glad to see that the duplicate(s) helped in solving it yourself, cheers :)

    – Funk Forty Niner
    Nov 18 '18 at 23:02








1




1





@FunkFortyNiner Thank you. That worked. Once I added backtick's (`) to the tables and columns, it performs correctly.

– Brian Bruman
Nov 18 '18 at 23:01







@FunkFortyNiner Thank you. That worked. Once I added backtick's (`) to the tables and columns, it performs correctly.

– Brian Bruman
Nov 18 '18 at 23:01






1




1





You're welcome Brian; always glad to see that the duplicate(s) helped in solving it yourself, cheers :)

– Funk Forty Niner
Nov 18 '18 at 23:02





You're welcome Brian; always glad to see that the duplicate(s) helped in solving it yourself, cheers :)

– Funk Forty Niner
Nov 18 '18 at 23:02












0






active

oldest

votes

















0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes

Popular posts from this blog

Guess what letter conforming each word

Port of Spain

Run scheduled task as local user group (not BUILTIN)