php - MYSQL 接受带有 INT 数据类型字母的字符串值

标签 php mysql get

我正在使用 php 和 mysql。当用户单击提交按钮时,GET 查询字符串如下所示:

http://mywebsite.com/category/section?article=1

我这样查询:

"SELECT * FROM article WHERE art_id='$article' "

art_id 是一个 int(11) 数据类型,但如果我有正确的数字作为前缀,它会接受一个带有字母的值,例如:http://mywebsite .com/category/section?article=1asd。如果我传递所有字母 (?article=asd) 它不会接受,但如果我传递一个带字母的数字 (?article=12asd) 它会接受并返回art_id12 的文章。我怎样才能避免这种情况?

我直接在 MySQL 命令行客户端上尝试过,它接受其中包含字母的值。

最佳答案

您可以通过 if 条件 checkin 您的代码:

You can check your GET variable 'article' before passing into mysql query to prevent the issue you are facing:
solution 1: if(is_numeric($_GET['article'])){your query}
solution 2: intval($_GET['article']);//cast the variable and then pass into query
solution 3: if(is_int($_GET['article'])){your query}

希望这些解决方案对您有用。

关于php - MYSQL 接受带有 INT 数据类型字母的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22419484/

相关文章:

php - 英特尔 XDK getRemoteData 方法和 PHP

php - 动态 PHP 查询 - 过滤器选择

javascript - 为什么我无法向 google.com 发送 GET 请求?

iphone - RestKit GET 查询参数

php - 如何输出 JOINed 表?

php - 输入正确的 Google Recaptcha 挑战和激活码后无法重定向到所需页面

php - MySQL查询从A中选择行并组合B中的多行

php - 如何为输入类型 'datetime-local' 设置值?

jquery - this.setState() 不是一个函数 -> 当尝试保存状态响应时

javascript - 将 'onclick' 与输入元素一起使用时重定向