回显sql查询添加新行


Echoing sql query adds a new line

当我回显sql查询时,它显示

the volunteer id is 312INSERT INTO volunteer_events (event_id, volunteer_id) VALUES ('91  
', '312')

它在'91之后添加了一个新行,而不是在一行中。我想知道我在做什么,导致它添加了一个新的行。

public function addUserToEvent($event,$volunteer)
{
    $event_id = $event;
    echo "the event id is ". $event_id;
    $volunteer_id = $volunteer;
    echo "the volunteer id is ". $volunteer_id;
    $sql = "INSERT INTO volunteer_events (event_id, volunteer_id) VALUES ('$event_id', '$volunteer_id')";
    echo $sql;
    return mysql_query($sql);
}

我在这里调用addUserToEvent

if(isset($_POST["events"])){
    $eventIds = $_POST["events"];
    $N = count($eventIds);
    for($i=0; $i < $N; $i++) {
      echo "</br>";
      echo "The events IDs are";
      echo "</br>";
      echo($eid = $eventIds[$i]);
     $sql = "SELECT distinct v.id 
            FROM volunteers v
            WHERE v.first_name = '$fname'
            AND v.last_name = '$lname'
            AND v.email = '$email'";
     $results = $db->q($sql);
     if($row = $results->getAssoc()) 
      {
            $vID = $row['id'];
            echo "the vid is ". $vID;
      }
      echo "</br>";
      echo " the eid is blah ".$eid;
     echo $db->addUserToEvent($eid, $vID);
    }

}

很容易修复,只需将其转换为int。

public function addUserToEvent($event,$volunteer)
{
    $event = (int) $event;
    $volunteer = (int) $volunteer;
    $event_id = $event;
    echo "the event id is ". $event_id;
    [...]

我想的是实地志愿者的数据类型。id是一个varchar类型,它应该是INT类型。