MySQL PHP在知道同一表中的两个其他值时从数据库获取值
我有一个MySQL表——在我的问题中,我有两个我知道的值,每个值在一个单独的列中,但是我需要根据我知道的两个值找到3值,并对其进行响应 这是我尝试过的,但没有运气:MySQL PHP在知道同一表中的两个其他值时从数据库获取值,php,mysql,Php,Mysql,我有一个MySQL表——在我的问题中,我有两个我知道的值,每个值在一个单独的列中,但是我需要根据我知道的两个值找到3值,并对其进行响应 这是我尝试过的,但没有运气: <?php ... $profile_url = 'xyz'; $pic_switch = array ( '01' => mysql_query("SELECT mm_image_switch FROM $tbl_name04 WHERE profile_url = '$profile_url' AND m
<?php
...
$profile_url = 'xyz';
$pic_switch = array (
'01' => mysql_query("SELECT mm_image_switch FROM $tbl_name04 WHERE profile_url = '$profile_url' AND mm_image_id ='01'")
'02' => mysql_query("SELECT mm_image_switch FROM $tbl_name04 WHERE profile_url = '$profile_url' AND mm_image_id ='02'")
'04' => mysql_query("SELECT mm_image_switch FROM $tbl_name04 WHERE profile_url = '$profile_url' AND mm_image_id ='04'")
...
?>
mysql\u query()
不返回mm\u image\u开关的值
,它返回一个,您将作为参数传递给其他函数,如mysql\u fetch\u row()
,以迭代此查询的结果。你必须做更多类似的事情:
$res = mysql_query("SELECT mm_image_switch FROM ...");
$row = mysql_fetch_assoc($res);
if ($row !== FALSE) // if the query actually returned a matching row
{
$pic_switch['01'] = $row['mm_image_switch'];
}
else
{
$pic_switch['01'] = 'Not found';
}
但是,您可以简单地执行以下操作,而不是对每个ID执行一个查询:
function get_pic_switches($profile_url, $ids)
{
global $tbl_name04;
$ret = array();
$res = mysql_query("SELECT mm_image_id, mm_image_switch FROM $tbl_name04 WHERE profile_url = '$profile_url' AND mm_image_id IN ('".implode("', '", $ids)."')");
while ($row = mysql_fetch_row($res))
{
$ret[$row[0]] = $row[1]; // $ret[mm_image_id] = mm_image_switch;
}
return $ret;
}
$pic_switch = get_pic_switches('xyz', array('01', '02', '04'));
请注意,从PHP5.5.0开始,扩展名mysql\uuuz
就不推荐使用,并将在未来的PHP版本中删除。建议使用其备选方案之一(如或)编写新代码。mysql\u查询不返回值,而是返回一个结果集,该结果集可以通过其他函数读取,例如mysql\u fetch\u row、mysql\u fetch\u assoc、mysql\u fetch\u object或mysql\u fetch\u array。有关更多详细信息,请参阅php文档(php.net)
否则,我不明白为什么要在一个数组中执行所有查询,为什么要对具有不同参数值的同一查询使用一个数组
注意:mysql_*函数已弃用。首选使用等效的mysqli_*函数或PDO