I have two PHP variables in a class that are integers ($id and $descCode).
I’m trying to get these into my SQL function call as characters (the database is looking for these to be CHAR 2 and CHAR 10 respectively).
For some reason, this is triggering an error:
Use of parameter marker or NULL not valid
What exactly am I doing wrong here?
$results = array();
$results = $db->select("SELECT newCodeTest(:id,:desc) as newCode FROM testTable",
[
'id' => (string)$id,
'desc' => (string)$descCode
]
);
Advertisement
Answer
You can not use PDO in this way.
Look at this (possible duplicate): Can PHP PDO Statements accept the table or column name as parameter?.
Set those values as basic string
$id = $pdo->quote($id);
$desc = $pdo->quote($desc);
"SELECT newCodeTest({$id},{$desc}) as newCode FROM testTable"
Info about quoting:
https://www.php.net/manual/en/pdo.quote.php
Interesting info about performance