PostgreSQL不允许使用字符串值

时间:2018-06-14 06:23:56

标签: php postgresql

以下PostgreSQL查询产生以下错误。但在我的直觉中,一切都是正确的。我不知道PostgreSQL为什么会出错。

$query = "INSERT INTO test (sku) VALUES ("."3814TT82033102-2".")";

sku提交的内容为VARCHAR(50),但为什么postgres查询不允许我的sku。我得到了以下

PHP Warning:  pg_exec(): Query failed: ERROR:  syntax error at or near "TT82033102"
LINE 1: INSERT INTO test (sku) VALUES (3814TT82033102-2)
                                           ^ in /home/nifras/Documents/User/working-dir/csv/functions/import-rules.php on line 11

2 个答案:

答案 0 :(得分:2)

我不是php专家,但我觉得可以使用绑定参数。

$sku = '3814TT82033102-2';
$query = 'INSERT test (sku) VALUES VALUES(:sku)';
$stmt = $this->pdo->prepare($query);
$stmt->bindValue(':sku', $sku);

答案 1 :(得分:0)

我更改了我的查询,如下所示

$product_sku = $product[0];
$query = "INSERT INTO test (sku) VALUES ('$product_sku')";

问题是字符串应该由单引号

覆盖

感谢a_horse_with_no_name