【问题标题】:Need help in showing data from database在显示数据库中的数据时需要帮助
【发布时间】:2017-08-03 04:53:01
【问题描述】:

我有一张这样的表格[信息]

+---+-------+---------------+
|id | cost  | place         |
+---+-------+---------------+
|1  | 2000  | Dhaka         | 
|2  | 1000  | Cox's Bazar   |
+---+-------+---------------+

现在我使用这个查询来显示这些数据

$a_place = $_POST['place'];
query = "SELECT * FROM info WHERE place = '$a_place'";

当我搜索 Dhaka 时它工作正常,但它不适用于 Cox's Bazar。也许是为了这个>'

现在我该怎么办?请帮忙!

【问题讨论】:

  • 了解准备好的报表!
  • 你必须转义输入字符串
  • 使用准备好的语句,它会自动处理引号的转义。
  • 或者替换'然后换成条件
  • 你们能帮我写代码吗? ://

标签: php mysql sql phpmyadmin mariadb


【解决方案1】:

试试这个

$a_place = str_replace($_POST['place'],"'","''");

query = "SELECT * from info WHERE place = '".$a_place."'";

编辑

创建表并插入数据

你看到的数据和你的一样。

如果我像我一样选择输出是 true

【讨论】:

  • 它不工作。当我使用它时,它没有显示任何结果:/
  • 你能试试这个吗:query = "SELECT * from info WHERE place = 'Cox''s Bazar'";这应该工作
  • 是的,它可以工作@ErsinGülbahar。但是用户不会搜索 Cox's Bazar,不是吗?他们将寻找考克斯巴扎尔。 ://
【解决方案2】:

也许这将有助于开始:

// prepare and bind
$a_place = $_POST['place'];
$stmt = $conn->prepare("SELECT country FROM info WHERE place = '?'");
$stmt->bind_param("s", $a_place);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows){
  $stmt->bind_result($country);
  $stmt->fetch();
  $stmt->free_result();
  echo $country;
};
?> 

看看这篇文章: Getting results of statement

(记住选择 * 是不好的做法)

【讨论】:

    猜你喜欢
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 2017-11-17
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多