Mysql LIKE显示未知字符

时间:2015-03-21 04:13:59

标签: php mysql get sql-like

我试图从mysql表中过滤一些数据。

<?php
include ("connection.php");
$name = "cable";
$sql = "SELECT  * FROM stock WHERE item LIKE '%$name%'";
?>
<a target="_blank" href="test2.php?link=<?php echo $sql; ?>" >click</a>

我尝试使用下一页的$ _GET [link]获取sql语句。 (test2.php)。这是来自TEST2.PHP的代码

<?php    
include ("connection.php");   
$link = $_GET['link'];
echo $link;

然后echo $链接显示了一个不同的值。它不显示“电缆”。相反,它显示

SELECT * FROM stock WHERE item LIKE 'Êble%'

你能告诉我为什么CABLE成了傻瓜吗?

2 个答案:

答案 0 :(得分:0)

在URL中传递SQL语句不是一个好主意。请参考以下链接以供参考, refer this

如果您想通过URL传递特殊字符,可以使用

urlencode($url);

答案 1 :(得分:0)

正如Ayyanar所说,是的,在SQL query传递URL并不是一个好主意。

但是,如果你仍然希望实现这一点,你可以做这样的事情:

TEST1.PHP

<?php
$name = "cable";
$sql = "SELECT  * FROM stock WHERE item LIKE '%--$name--%'";
?>
<a target="_blank" href="test2.php?link=<?php echo $sql; ?>" >click</a>

TEST2.PHP

<?php
$link = $_GET['link'];    
$link = str_replace(
  array('%--', '--%'), 
  array('%', '%'), 
  $link
);
echo $link;
?>