我目前正在尝试使用PHP从MYSQL中提取数据,并且我不断收到以下错误:
"无法检索记录:您的SQL语法中有错误;请检查与您的MySQL服务器版本对应的手册,以便在第1行'%PC4198%或oem LIKE%Fluke%'附近使用正确的语法"
我的SQL语句如下:
$sql = "SELECT * FROM account WHERE `NSC ID` LIKE %".$nscid."% OR oem LIKE %".$oem."%";
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏.
Tor*_*dek 10
你的字符串应该引用:
$sql = "SELECT * FROM account WHERE NSC ID LIKE '%".$nscid."%' OR oem LIKE '%".$oem."%'";
Run Code Online (Sandbox Code Playgroud)
也就是说,你应该考虑使用PDO或ORM.
编辑:
正如Bill所说,使用PDO的主要目的是防止SQL注入(由可能脏的字符串连接到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);
Run Code Online (Sandbox Code Playgroud)
这是一些更多的代码,但是通过让库进行转义,它可以保护你免受大多数(所有?)SQL注入的影响.
(bindValue的参数类型是可选的,但是很好的做法.)
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |