我正在使用 php 和 mysql。当用户单击提交按钮时,GET 查询字符串如下所示:
http://mywebsite.com/category/section?article=1
我这样查询:
"SELECT * FROM
article
WHEREart_id
='$article' "
art_id
是一个 int(11)
数据类型,但如果我有正确的数字作为前缀,它会接受一个带有字母的值,例如:http://mywebsite .com/category/section?article=1asd
。如果我传递所有字母 (?article=asd
) 它不会接受,但如果我传递一个带字母的数字 (?article=12asd
) 它会接受并返回art_id
为 12
的文章。我怎样才能避免这种情况?
我直接在 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/