PHP:在foreach中选择语句

时间:2016-04-18 14:45:44

标签: php mysql

我从数据库中选择了数据,主要是在Where CONCAT_WS()中获取名称匹配的用户名,我在选择第二个值时遇到错误。

foreach($names as $name){
if($name != ""){
  $query = mysqli_query($conn, "select CONCAT_WS('', fname, ' ', mname, ' ', lname) as name, username from user where CONCAT_WS('', fname, ' ', mname, ' ', lname) = '$name'");
  $row = mysqli_fetch_array($query);
  $username = $row['username'];
  $sql = mysqli_query($conn, "insert into message_send(username, receiver, message) values('$u','$username','$msg')");  
}     
}

成功插入第一个值后,第二个值出现错误,其中未插入用户名。此错误的输出是

Username | Receiver | Message
myuser   | user2    | this is a message
myuser   |          | this is a message

1 个答案:

答案 0 :(得分:0)

要获得最佳效果,请在mysqli_close($query)mysql_fetch_array()mysqli_close($sql) insert之后立即致电mysqli_query()。这些调用会关闭结果集并重置连接,以便您可以再次使用它。

您可能还应检查每个message_params操作是否有错误。