'正在尝试执行以下代码:
try
{
$conn = new PDO('odbc:Clasges5');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO codpais (clapai,codpas,nompas) VALUES (:clapai,:codpas,:nompas)";
$q = $conn->prepare($sql);
$clapai = 31;
$codpas = 'test codpas';
$nompas = 'test nompas';
$q->bindParam(':clapai', $clapai, PDO::PARAM_INT);
$q->bindParam(':codpas', $codpas, PDO::PARAM_STR);
$q->bindParam(':nompas', $nompas, PDO::PARAM_STR);
$q->execute();
}
catch(Exception $e)
{
echo $e->getMessage();
}
数据库(通过 ODBC 的 VisualFox DBase)如下所示: - 表 codpais - clapai 主键 - codpas 字符串 - nompas 字符串
我收到错误 Invalid character value for cast specification: 302
问题是“clapai”。如果我使用 codpas 或 nompas 执行更新,一切正常,如果我尝试更新 clapai 值,它会引发相同的错误。
有什么技巧可以解决这个问题吗?顺便提一句。使用命名占位符还是问号更好?有什么好处吗?