PDO sql查询无法按预期工作

时间:2017-08-31 00:11:35

标签: php mysql pdo

我在使用此查询成功搜索数据库时遇到问题。

我想查询数据库以显示其名称中包含搜索内容的任何内容。

目前正在运作。但是它只搜索描述栏,不会搜索其他列。

我真的很难过为什么我在查询中有OR命令。

我遇到的另一个问题是当我在查询中添加两位数字时(这是我的数据库列之一)它返回此错误:

  

带有消息'SQLSTATE [42S22]的未捕获异常'PDOException':   未找到列:1054'where子句'中的未知列'two'   /home/content/57/9632657/html/client/prospects/wp-content/themes/prospects/page-sic-code-search.php:67   堆栈跟踪:#0   /home/content/57/9632657/html/client/prospects/wp-content/themes/prospects/page-sic-code-search.php(67):   PDOStatement-> execute()#1   /home/content/57/9632657/html/client/prospects/wp-includes/template-loader.php(74):   include('/ home / content / 5 ...')#2   /home/content/57/9632657/html/client/prospects/wp-blog-header.php(19):   require_once('/ home / content / 5 ...')#3   /home/content/57/9632657/html/client/prospects/index.php(17):   require('/ home / content / 5 ...')#4 {main}引入   /home/content/57/9632657/html/client/prospects/wp-content/themes/prospects/page-sic-code-search.php   在第67行

<?php

get_header();

?>



<div id="main-content" style = 'position: relative'>

    <div class = 'wrapper'> 

    <h1 class="entry-title main_title"><?php the_title(); ?></h1>


    <div class = 'sic-text'>
        <p> SIC codes are assigned by the Government and are standard at the 4 digit level.
            The 8 digit codes may be customized by each individual list owner. Because we represent all list
            sources, there may be variance in what the 8 digit codes represent. For greatest accuracy,
            when speaking with one of our List Brokers please supply the sic code # along with a description so
            we can provide as exact a match as possible.To use this search, simply type the Industry you’re
            looking for into the Search By Keyword field. For instance, entering “Dentists” will cause all
            businesses related to dentists listed. <! — If you know the SIC code and want to know the industry
            name, enter the 8 digit code into the Search By Code field. –> </p>

    </div>




    <form action="" method="POST" class = 'sic-search'> 



    <input class = 'sic-search-text' type="text" name="search" placeholder="Search for an industry, eg 'Agriculture'"/>


    <input type="submit" value="Search" class = 'sic-search-button'/>
    </form>






 $min_length = 2;
    // you can set minimum length of the sic if you want

    if(strlen($search) >= $min_length && $search != ''){ // if sic length is more or equal minimum length then

       echo "<p id='rowCount'> </p>";

    $pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ));
// Search from MySQL database table
$search=$_POST['search'];
$query = $pdo->prepare("select * from siccodes where description LIKE '%$search%' OR description-2 LIKE '%$search%'");
$query->bindValue(1, "%$search%", PDO::PARAM_STR);
$query->execute();
// Display search result
         if (!$query->rowCount() == 0) {
                echo "Search found :<br/>";
                echo "<table class='sic-code-table'";   
                echo "<tr><th>description</th><th>two-digit-sic</th><th>description</th><th>four-digit-sic</th><th>description</th><th>six-digit-sic</th></tr>";                
            while ($results = $query->fetch()) { 
                echo "<tr><td>";            
                echo $results['description'];
                echo "</td><td>";
                echo $results['two-digit-sic'];
                echo "</td><td>";
                echo $results['description-2'];
                echo "</td><td>";
                echo $results['four-digit-sic'];
                echo "</td><td>";
                echo $results['description-3'];
                echo "</td><td>";
                echo $results['six-digit-sic'];
                echo "</tr>";

            }
                echo "</table>";        
        } else {
              echo "<p style = 'text-align:center; margin-bottom:30px; color: red;'>No results match" . " '" . $search . "' " . "Please try another search term.</p>";
        }
    } else {
        if (!empty($_POST['search'])) {
            echo "<p style = 'text-align:center; margin-bottom:30px; color: red;'> Please search again, '$search' is to short.</p>";
        }
    }






?>







<!-- creates a form at the bottom of the list if there are more than 100 records -->
<?php if(mysql_num_rows($raw_results) > 100) : ?>
<form action="" method="GET" class = 'sic-search'>

    <input class = 'sic-search-text' type="text" name="sic" placeholder="Search for an industry, eg 'Agriculture'"/>


    <input type="submit" value="Search" class = 'sic-search-button'/>
    </form>
<?php endif; ?>





    </div> <!-- end of wrapper -->


</script>
</div> <!-- #main-content -->

<?php get_footer(); ?>

0 个答案:

没有答案