关于 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


来源:https://www.codenong.com/34632491/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?