关于 php:SQLSTATE[42S22]: Column not found: 1054 Unknown column \’$Values\’ in \’field list\’\’

SQLSTATE[42S22]: Column not found: 1054 Unknown column '$Valuess' in 'field list''

错误是 SQLSTATE[42S22]: Column not found: 1054 Unknown column '$Values' in 'field list'' in try2.php:31。我如何正确输入插入语句

相关讨论

  • 将插入查询放在双引号 (") 中
  • 可能重复:stackoverflow.com/questions/34630140/…
  • @DonCallisto 没有正确答案
  • @gaurav 使用双引号 " 传递变量。此外,请考虑使用准备好的语句(否则您将面临 SQL 注入的风险)。
  • 双引号后的@Qirel 错误 SQLSTATE[42000]:语法错误或访问冲突:
  • echo"INSERT INTO register ($Keys) VALUES ($Valuess)"; 产生什么? (可能是您的变量产生了无效的查询)

只需使用"

中的字符串

1
$dbh->prepare("INSERT INTO register ($Keys) VALUES ($Valuess)")

因为在 '' 变量内部的行为类似于字符串,但在" 变量内部获取值。

也改变

1
 $Valuess ="'".implode("','", $Valuess)."'" ;

值必须用逗号分隔,例如 'gaurav','sundaram'

相关讨论

  • 新错误 SQLSTATE[42000]:语法错误或访问冲突:
  • 你是对的,但也需要这个`$keys = implode(",", Keys);`

改用 bindParam - PHP 文档中的一个示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>

相关讨论

  • 出于安全考虑,最好使用数组或 BindParam

以上是关于 php:SQLSTATE[42S22]: Column not found: 1054 Unknown column \’$Values\’ in \’field list\’\’的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>