Php 如何在Mysql查询中使用变量
我有一个疑问:Php 如何在Mysql查询中使用变量,php,mysql,sql,sql-like,Php,Mysql,Sql,Sql Like,我有一个疑问: $result = mysql_query("select * FROM `agents_infos` WHERE ( agent_name LIKE '%$name%' )"); $name是: $name =$_POST['name']; 我想得到结果,所有包含名称的元素,但什么也得不到。您能帮助我吗?为了接收包含名称的所有元素的列表,您可以写: $name = $_POST['name']; $result = mysql_query("SELECT *
$result = mysql_query("select * FROM `agents_infos`
WHERE ( agent_name LIKE '%$name%' )");
$name是:
$name =$_POST['name'];
我想得到结果,所有包含名称的元素,但什么也得不到。您能帮助我吗?为了接收包含名称的所有元素的列表,您可以写:
$name = $_POST['name'];
$result = mysql_query("SELECT * FROM `agents_infos` WHERE ( agent_name LIKE '%".$name."%' )");
为了避免代码注入,我建议使用
$name = mysql_real_escape_string( $_POST['name'] );
而不是
$name=$_POST['name']
首先,您需要清理您的输入: 然后您需要使用mysqli而不是mysql: 然后你可以这样做:
$name = mysqli_real_escape_string($_POST['name']);
$query = "select * FROM `agents_infos` WHERE ( agent_name LIKE '%".$name."%' )";
$result = mysqli_query($query);
您的变量$name实际上是一个值吗?您可以尝试像echo$name那样打印它,或者检查您的查询echo select*FROM agents_infos,其中agent_name像“%$name%”是的,该值已发布,它已打印。您的服务器上可能禁用了魔法引号。Try:$result=mysql\u queryselect*来自代理信息,其中代理名称类似“%”$名称.%';mysql\u real\u escape\u字符串不阻止注入。mysql扩展已被弃用