简体   繁体   English

PHP的MySQLi无法正常工作

[英]php mysqli not working

I am making a chat application and this is the part that checks for new additions. 我正在制作一个聊天应用程序,这是检查新添加内容的部分。

<?php
$servername = "*";
$username = "*";
$password = "****";
$dbname = "*"; 

$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (mysqli_connect_error($conn)) {
    die("Connection failed: " . mysqli_connect_error($conn));
} 
$id = $_GET['id'];
$sql = "SELECT position, user, comment,time FROM chat WHERE position > $id";
$result = mysqli_query($conn,$sql);
if (mysqli_num_rows() > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        $row2 = mysqli_fetch_assoc(mysqli_query($conn,"SELECT * FROM login WHERE username=".$row['user']));
        $userImage = $row2["avatar"];
        echo "<div class='container-fluid well'><p class='left'>"."<img class='img-circle zoom' src='/profile_images/".
        $userImage
        ."' style='width:32px;height:32px;'>".$row["user"]. ": " . $row["comment"]. "</p><h4><small class='right'> at ".$row['time']."</small></h4></div>";
    }
}
mysqli_close($conn);
?>

it was working until I changed the line 一直工作到我改变线

$row2 = mysqli_fetch_assoc(mysqli_query($conn,"SELECT * FROM login WHERE username=".$row['user']));

Help would be appreciated. 帮助将不胜感激。

Update: 更新:
this is my html: There is more. 这是我的html:还有更多。 but this is the most important 但这是最重要的

<div id='newchat'></div>
<script>
$(document).ready(function(){
    getChat();
    var id = <?php echo $id ?>;
    function getChat(){
        setTimeout(getChat,1000);
        $.get("getChat.php?id="+id,function( text ) {
            if (text != ""){
                id ++;
                $( "#newchat" ).prepend( text );
            }
        });
    }
});
</script>

you forget 2 ' 你忘了2 '

$row2 = mysqli_fetch_assoc(mysqli_query($conn,"SELECT * FROM login WHERE
username='".$row['user']."'"));

Try this query : 试试这个查询:

$row2 = mysqli_fetch_assoc(mysqli_query($conn,"SELECT * FROM login WHERE username='{$row['user']}'"));

Side note : Your query is unsafe. 旁注:您的查询不安全。 Read this How can I prevent SQL injection in PHP? 阅读本文如何防止PHP中进行SQL注入? .

Simply use this query: 只需使用以下查询:

"SELECT * FROM login WHERE username='".$row['user']."'"

instead of 代替

"SELECT * FROM login WHERE username=".$row['user']

and if you want a simple query then use: 如果您想进行简单的查询,请使用:

$usr = $row['user'];
$row2 = mysqli_fetch_assoc(mysqli_query($conn,"SELECT * FROM 
login WHERE username=$usr"));

It'll definitely work. 肯定会的。

Write your query as below:- 编写您的查询,如下所示:

$sql = "SELECT * FROM login WHERE username='{$row['user']}'";

mysqli_fetch_assoc(mysqli_query($conn,$sql));

Hope it will help you :) 希望它能对您有所帮助:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM