gpt4 book ai didi

mysql - 无法运行查询 : SQLSTATE[42000]: Syntax error or access violation: 1064

转载 作者:行者123 更新时间:2023-11-29 00:10:06 25 4
gpt4 key购买 nike

我查看了很多其他有相同错误的线程,但我的似乎有点不同。我已经检查过是否遗漏了逗号之类的东西。

这是不起作用的原始代码:

SELECT `color_name`, `dna_sample` FROM `horse_color_base` WHERE `dna_sample` = $dna 

但是,如果您将 $dna 更改为 "eeee aaaa"($dna 的值是什么),它会完美运行。

SELECT `color_name`, `dna_sample` FROM `horse_color_base` WHERE `dna_sample` = 'eeee aaaa'

验证错误如下:

Failed to run query: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'aaaa' at line 1

它似乎破坏了 $dna 变量,这把一切都搞砸了。

关于如何使这个东西与变量一起工作的想法或想法?

我对 dnadna_sample 列使用排序规则 latin1_general_cs,因为我需要它们区分大小写。

最佳答案

像 Michael Berkowski 的评论一样,引用变量:

WHERE `dna_sample` = '$dna'

以这种方式编写查询是对 SQL injection 开放的.编写带有绑定(bind)参数的查询几乎总是更好:

$stmt = $pdo->prepare('SELECT * FROM horse_color_base WHERE dna_sample = :dna');
$stmt->execute(array('dna' => $dna));

关于mysql - 无法运行查询 : SQLSTATE[42000]: Syntax error or access violation: 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25588294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com