gpt4 book ai didi

php - MySQL select 在 phpMyAdmin 中工作,但我的 PHP 没有返回具有相同调用的行

转载 作者:行者123 更新时间:2023-11-29 05:44:50 25 4
gpt4 key购买 nike

这是我的代码

<?php
session_start();

include('config.php');
if(isset($_GET['search_word']))
{
// echo $_GET['search_word'] . '<br />'; // debugging
$search_word = $_GET['search_word'];
$search_word = mysql_escape_string($search_word);
$search_word_fix = str_replace(" ","%",$search_word);

$query = "SELECT * FROM article WHERE article_title LIKE '%" . $search_word . "%' AND article_live = '1' ORDER BY article_id DESC";
// echo $query . '<br />'; // debugging

$sql = mysql_query($query);
$count = mysql_num_rows($sql);
// echo $count . '<br />'; // debugging
// echo mysql_num_rows($sql) . '<br />'; // debugging
if($count > 0)
{
while($row=mysql_fetch_array($sql))
{
$msg=$row['article_title'];
$bold_word='<b>'.$search_word.'</b>';
$final_msg = str_ireplace($search_word, $bold_word, $msg);

echo $final_msg;
}
}
else
{
echo "No Results";
}
}?>

有人能看出它有问题吗?我无法找出这个脚本有什么问题,我已经盯着它看了一段时间了。当我取消对调试的注释时,它永远不会进入 WHILE 循环,只有“无结果”并且计数返回空白。

最佳答案

计数返回空白表示您的查询由于某种原因失败。

  • 您是否正确连接到数据库?尝试在查询后立即使用 mysql_error():

    $error_msg = mysql_error();
  • 使用 mysql_real_escape_string() 而不是 mysql_escape_string() - 它尊重字符集,因此您不会遇到 UTF8 问题

如果您公开使用它,您可能想了解如何使用绑定(bind)来消除 SQL 注入(inject)的可能性 via a library like PDO .

Here's a pretty good tutorial/introduction to PDO explaining why it's important!

关于php - MySQL select 在 phpMyAdmin 中工作,但我的 PHP 没有返回具有相同调用的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3329891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com