javascript - 如何管理mysql where子句中 "+"的数据

标签 javascript php mysql

我在成员表中有一个血型数据 [A-,A+,B+,B-,AB+, AB-,O+,O-] 我有一个搜索功能,允许我选择以上血型并搜索具有所选血型的成员。 但我的查询没有为我获取血型以“+”结尾的成员。对于血型为“-”的成员,相同的查询工作正常。

然后我将查询结果传递给一个 javascript url,它会获取最终的查询结果。所以我觉得 javascript 变量在得到 + 时就结束了。那么如何管理呢?

这是我的查询:

$bldgroup       = mysql_real_escape_string($_POST["bldgroup"]);
$sqlsearch  =   mysql_query("SELECT * from member
                            WHERE blood_group='$bldgroup' 
                            ORDER BY memid ASC");

<script>

var url = "../include/query.php?flag=search&&query="+sqlsearch;

</script>
 <div><label>Blood Group</label></div>  
            <div>
            <select id="bldgroup" name="bldgroup" >  
               <option value="">Select</option>  
               <option value="A+">A+</option>  
               <option value="A-">A-</option> 
               <option value="B+">B+</option>
               <option value="B-">B-</option>
               <option value="AB+">AB+</option>
               <option value="AB-">AB-</option>
               <option value="O+">O+</option>
               <option value="O-">O-</option>  
            </select> 
         </div>
       </div>


//This the content inside ./include/query.php file
if(isset($_REQUEST["flag"]))
{
   $list  = $_REQUEST["flag"];
   if($list == "search")
   {
      $query = $_REQUEST["query"];  
      $sql = $query;
      $sql.= mysql_query" ORDER BY t1.MemberID DESC";    
   }
}

最佳答案

该代码对我有用..我创建了一个表成员,其中包含一 strip 有 Blood_group A+ 的记录和一 strip 有 Blood_group A- 的记录。选择 A+ 并为我发送表单结果会产生正确的记录。

当然我不知道你的表定义,所以你的MySQL查询可能有问题。

尝试使用

$sql = "SELECT * from member where       blood_group='$bldgroup' order by memid asc";
$search_result = mysql_query($sql) or die ($sql."<BR>".mysql_error());

另请注意您已收到的评论。您的代码使用了通常不安全的已弃用函数,您至少应该使用 mysqli功能。

我的 PHP 代码:

<?php
mysql_connect("localhost", "root", "root");
mysql_select_db("test");

$bldgroup       = mysql_real_escape_string($_POST["bldgroup"]);
$sqlsearch  =   mysql_query("SELECT * from member where       blood_group='$bldgroup' order by memid asc");

while ($row = mysql_fetch_row($sqlsearch)) {
    var_dump($row);
}

?>
<form method="POST">
 <div><label>Blood Group</label></div>  
            <div>
            <select id="bldgroup" name="bldgroup" >  
               <option value="">Select</option>  
               <option value="A+">A+</option>  
               <option value="A-">A-</option> 
               <option value="B+">B+</option>
               <option value="B-">B-</option>
               <option value="AB+">AB+</option>
               <option value="AB-">AB-</option>
               <option value="O+">O+</option>
               <option value="O-">O-</option>  
            </select> 
         </div>
       </div>
       <input type="submit">
</form>       

我的表定义:

CREATE TABLE `member` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `blood_group` varchar(20) NOT NULL,
  `memid` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

INSERT INTO `member` (`id`, `blood_group`, `memid`) VALUES
(1, 'A+', 123),
(2, 'A-', 231);

关于javascript - 如何管理mysql where子句中 "+"的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29699834/

相关文章:

javascript - 为什么这个鼠标悬停脚本不能正常工作?

javascript - 如何在 Angular 中处理 LocalDateTime 后端响应

javascript - 单击时使用 Javascript 加载图像

php - 图像不会添加到 SQL 数据库

sql - 如何在同一个查询中从不同的表中检索相似的行?

javascript - RxJs5 中是否有相当于 RxJs<=4#ofArrayChanges 的内容

php - Laragon 400 错误请求 Laravel 5.1

php - 如何使用js/html/php将默认的apache登录/密码弹出框更改为自定义?

MySQL - 使用 WHERE 或 HAVING 子句中的结果计算每行中两列的值

mysql - SQL 在上一个结果之后随机化结果