Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Mysql查询中使用变量_Php_Mysql_Sql_Sql Like - Fatal编程技术网

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扩展已被弃用