PHP如何修改MySQL查询代码仅获取ID=5的title和mess数据?
解决MySQL查询返回多条数据的问题
我来帮你搞定这个问题!你需要从mha1表中仅获取ID=5的title和mess字段数据,之前的两段代码返回多条结果,是因为SQL查询条件用了范围匹配(比如id>'1'或者id>".$co"),而非精确匹配ID=5。下面是调整后的代码及说明:
修改后的PHP代码
<?php $hostname_mus_db = "localhost"; $database_mus_db = "message"; $username_mus_db = "root"; $password_mus_db = ""; $tf = @mysql_connect($hostname_mus_db, $username_mus_db, $password_mus_db); if(!$tf) die('Connection problem1 ..'); $tf_db = mysql_select_db($database_mus_db); if(!$tf_db) { @mysql_close($tf); die('selection problem2 ..'); } $co_array = array(); // 精确查询ID=5的指定字段 $sql = mysql_query("SELECT title, mess FROM mha1 WHERE id = 5"); while($row = mysql_fetch_assoc($sql)){ $co_array[] = $row; } header('Content-Type:application/json'); echo json_encode(array("date"=>$co_array)); ?>
关键修改点说明
- SQL查询精准化:把原来的范围查询逻辑改成了精确匹配
id = 5,同时只查询你需要的title和mess字段(代替SELECT *,既减少数据传输量,也避免冗余数据) - 修复连接关闭错误:原代码中误用了未定义的
$tf_handle变量,现已修正为正确的连接变量$tf
另外要提醒一句:mysql_*系列函数早在PHP 5.5就被废弃,PHP 7.0后完全移除,建议后续项目切换成mysqli_*或者PDO来操作数据库,同时记得使用预处理语句防范SQL注入风险。
内容的提问来源于stack exchange,提问作者mohamed mrzouk
相关产品推荐
相关产品推荐

