有没有办法缩短这段代码:
$resultCategoryName = mysql_query("SELECT ecname FROM electioncategorymaster WHERE ecid=".$Category);
$rowCategoryName = mysql_fetch_row($resultCategoryName);
$CategoryName = $rowCategoryName[0];
答案 0 :(得分:3)
也许您应该考虑使用某种ORM。 Zend_Db有一种方法可以从查询中获取单个值。
$ecname = $db->fetchOne("SELECT ecname FROM electioncategorymaster WHERE ecid = ?", $Category);
答案 1 :(得分:2)
没有。由于PHP存在缺陷,因此无法实现以下目标:
$CategoryName = mysql_fetch_row($resultCategoryName)[0];
答案 2 :(得分:1)
我不认为它可以进一步减少。所有功能都在最低级别执行任务。您只能缩短变量名称:)
答案 3 :(得分:1)
您可以使用mysql_result分两步获取categroyName。
$resultCategoryName = mysql_query("SELECT ecname FROM electioncategorymaster WHERE ecid=".$Category);
$categoryName = mysql_result($resultCategoryName, 0); //Extract First column
以下是参考link。
答案 4 :(得分:0)
我不是PHP大师,但也许你应该为每个表使用框架或类。
我不认为代码本身可以减少。
答案 5 :(得分:0)
$rowCategoryName = mysql_fetch_row(mysql_query("SELECT ecname FROM electioncategorymaster WHERE ecid=$Category"));
$CategoryName = $rowCategoryName[0];
这是我能想到的最短的。你真的应该做SELECT ecname FROM electioncategorymaster WHERE ecid='$Category'"
(在变量周围加上单引号)。
答案 6 :(得分:0)
这就是我这样做的方式。我使用sprintf确保只将数值作为id传递。我还使用LIMIT 1附加SQL发送,以确保只获取一条记录。
$r = mysql_fetch_row(mysql_query(
sprintf("SELECT * FROM <sometable> WHERE id = %d LIMIT 1",intval($id))
,$connection));