mysqli_query()没有产生预期的结果

时间:2014-09-07 20:23:14

标签: php mysql sql

我有一个被调用的函数:

function getUnitID($unit_name) {
$con = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
echo '<br/>'.$query = ' SELECT id, unit_name FROM units WHERE unit_name LIKE "'.trim($unit_name).'"'.'</br>';
$result = mysqli_query($con, $query);
$id = '';
echo 'here';
while ($row = mysqli_fetch_assoc($result)) {
    echo 'yup';
    $id = $row['unit_name'];
    if (strlen($id) > 0) 
        echo 'nothing';
    else echo 'something!';
    var_dump($row);
}
mysqli_close($con);
return $id;
}

我的输出是:

SELECT id, unit_name FROM units WHERE unit_name LIKE "a name here"
here

然而,当我在我的数据库中运行它时,我得到了一行。

请注意echo 'yup';行不输出任何内容。我假设$result = mysqli_query($con, $query);的某些内容搞砸了,但我知道$con很好,因为它可以在其他地方使用。

1 个答案:

答案 0 :(得分:3)

我认为问题在于:

echo '<br/>'.$query = ' SELECT id, unit_name FROM units WHERE unit_name LIKE "'.trim($unit_name).'"'.'<br />';

这样做是因为我很确定你搞砸了$ query:

$query=' SELECT id, unit_name FROM units WHERE unit_name LIKE "'.trim($unit_name).'"';
echo '<br/>'.$query.'<br />';

我不确定您要选择的是什么,但我有另一种预感,您想要这样做:

$query=' SELECT id, unit_name FROM units WHERE unit_name LIKE "%'.trim($unit_name).'%"';
echo '<br/>'.$query.'<br />';