gpt4 book ai didi

php - 使用PHP的SQL语句问题

转载 作者:行者123 更新时间:2023-11-30 23:57:43 25 4
gpt4 key购买 nike

我目前正在尝试使用 PHP 从 MYSQL 中提取数据,但我不断收到以下错误:

“无法检索记录:您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本对应的手册,了解在 '%PC4198% OR oem LIKE %Fluke%' 附近使用的正确语法第 1 行“

我的SQL语句如下:

$sql = "SELECT * FROM account WHERE `NSC ID` LIKE %".$nscid."% OR oem LIKE %".$oem."%";

非常感谢任何帮助。

最佳答案

你的字符串应该被引用:

$sql = "SELECT * FROM account WHERE NSC ID LIKE '%".$nscid."%' OR oem LIKE '%".$oem."%'";

也就是说,您真的应该考虑使用 PDO 或 ORM。

编辑:

正如 Bill 所说,使用 PDO 的主要目的是防止 SQL 注入(inject)(由将可能脏的字符串连接到 SQL 中引起)。

相同的查询,在 PDO 风格中,将是:

$query = $connection->prepare('SELECT * FROM account WHERE NSCID LIKE :nscid OR oem LIKE :orm');
$query->bindValue(':nscid', '%'.$nscid.'%', PDO::PARAM_STR);
$query->bindValue(':oem', '%'.$oem.'%', PDO::PARAM_STR);

它是一些更多的代码,但它会通过让库进行转义来保护您免受大多数(所有?)SQL 注入(inject)。

(bindValue 的参数类型是可选的,但这是一种很好的做法。)

关于php - 使用PHP的SQL语句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/895951/

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