选择带有值空格的SQL

hun*_*bad -2 php mysql sql sql-server

我有一个像这样的php文件:

<?php define('AREA', 'C');
    require ('prepare.php');
    require ('init.php');
    $con = mysql_connect(Registry::get ( 'config.db_host' ), Registry::get ( 'config.db_user' ), Registry::get ( 'config.db_password' ))or die("Unable to connect to MySQL");
    mysql_select_db(Registry::get ( 'config.db_name' ));
     if (!empty($_POST['dealer_company']))
     {
         $dealerCompany = 'Your company'; //$_POST['dealer_company'];                
         $result = mysql_query("SELECT distinct a.firstname, a.lastname, a.email, a.user_id
     FROM cscart_users a,cscart_usergroup_links b, cscart_usergroup_descriptions c
     WHERE b.usergroup_id=c.usergroup_id and b.status = 'A' and a.user_id=b.user_id and   
         c.usergroup='Dealer' and a.company = 'Your company'",$con) or die(mysql_error());

        while($row = mysql_fetch_array($result))
        {
            $d_Infos[]=$row;            
        }
     }
     if (!empty($_POST['dealer_company']))
     {
        $dealerInfos = '<select id="as_dealer_id" name="as_dealer_id" class="input-text">
            <option value="">Please select</option>';

                        foreach ($d_Infos as $k => $v)
                        {
              $dealerInfos .= '<option value="'.$v['user_id'].'">'.$v['firstname'].'</option>';                
            } 
     $dealerInfos .= '</select>';
         echo $dealerInfos;
      }
?>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我在SQL查询中有一个条件是a.company ='Your company'.但它无法选择具有该值的列.结果是空的.如果"您的公司"中没有空格,它将起作用,例如:"Yourcompany".所以我的问题是:是否可以选择条件中包含空格的行?非常感谢.

Fun*_*ner 5

使用以下以及PHP的trim()功能.

$dealerCompany = trim($_POST['dealer_company']);
Run Code Online (Sandbox Code Playgroud)

随着:

and a.company = '".$dealerCompany."'
Run Code Online (Sandbox Code Playgroud)

这将"修剪"左侧和/或右侧的任何空间.

将数据插入DB时也可以使用相同的功能.如果有人在表单输入元素的开头和/或末尾输入一个或多个空格,这将确保在条目的左侧和/或右侧不包含空格.

  • 最好立即这样做,以避免并发症.