【问题标题】:Mysql LIKE show unknown charactersMysql LIKE 显示未知字符
【发布时间】:2015-03-21 04:13:59
【问题描述】:

我试图从 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 $link 显示不同的值。它不显示“电缆”。相反,它显示

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

你能告诉我为什么 CABLE 变成了 Êble 吗?

【问题讨论】:

    标签: php mysql get sql-like


    【解决方案1】:

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

    但如果你仍然想实现,你可以这样做:

    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;
    ?>
    

    【讨论】:

      【解决方案2】:

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

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

      urlencode($url);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-18
        相关资源
        最近更新 更多