[英]mysql php search form - want to strip special characters from user input before select query
[英]PHP MYSQL select query strip spaces from column
我有这样的查询
mysql_query("select * from codes where code='222 '");
我想在查询中的列中删除空格,所以它应该是这样的
mysql_query("select * from codes where code=strippedstring('222 ')"
什么是最好的方法来做到这一点
尝试
$value=trim('222 ');
mysql_query("select * from codes where code=$value"
注意: - 不推荐使用mysql_ *,因为它已被弃用
了解trim()
首先,最好将查询的参数(查询的值和变量)与查询本身分开。 为此,您需要使用mysqli或PDO。 无论如何,这是一种很好的做法,因为旧的'mysql'函数已被弃用并将被删除。 这是mysqli的文档,它将是最简单的升级途径。
首先,将查询的参数放入变量中。
$input = '222 ';
然后使用trim()
。
$input = trim($input);
最后,运行您的查询。
$stmt = mysqli_stmt_init($database);
mysqli_stmt_prepare($stmt, 'select * from codes where code = ?');
mysqli_stmt_bind_param($stmt, 's', $input);
mysqli_stmt_execute($stmt);
//Note: Make sure to know how many columns you're getting.
$output = array();
mysqli_stmt_bind_result($stmt, $id, $name, $code);
while (mysqli_stmt_fetch($stmt)) {
$output[] = array($id, $name, $code);
}
这看起来比你拥有的代码多得多,但是每一行都有一个重要的目的,有时候你可能想要在它们之间做其他事情。 我强烈建议查看mysqli文档,虽然是的,但是它们允许你做一个简单的' mysqli_query()
'调用,它与你正在使用的' mysql_query()
'几乎完全相同,这是一个坏主意,它会让你打开对于像SQL注入攻击这样的东西。
这里有一个很好的概述,为什么你应该使用预准备语句,并快速了解如何在各种语言(包括PHP)中使用它们。
使用trim()
函数;
mysql_query("select * from codes where code=trim('222 ')"
使用以下PHP函数:
mysql_query("select * from codes where code=".strippedstring('222 ').");
$sql="select * from codes where code='".trim('222 ')."'";
mysql_query($sql);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.