PHP mysqli选择查询不会执行

3
$dc=fopen("numeu.txt","rb");
$row1=fgets($dc,120);   
$row2=fgets($dc,120);
$row3=fgets($dc,120);

fclose($dc);

$servername="localhost";
$username="root";
$password='';
$database="Stildev";

$conn = new mysqli($servername, $username, $password, $database);

$sql="SELECT poza1,poza2,poza3,poza4,poza5,poza6 FROM postari WHERE utilizator='".$row2."' AND subiect='".$row1."' AND id2='".$row3."'";


$resultat=$conn->query($sql);

echo $resultat->num_rows;

这段代码返回0行。
MySQL控制台没有错误,sql查询正常运行。
同时我发现去掉WHERE子句后,代码正常工作。你如何解释这个问题?

1
subiect='".$row1."' 这里的 subject 拼写错误,无论是故意还是错误。 - Nagendra Nigade
好的,你能检查一下这段代码吗,这样我们就可以确定它不是关于“SQL错误”的问题了:if (!mysqli_query($conn,"SELECT poza1,poza2,poza3,poza4,poza5,poza6 FROM postari WHERE utilizator='".$row2."' AND subiect='".$row1."' AND id2='".$row3."'")) { echo("Error description: " . mysqli_error($con)); } - Nagendra Nigade
2
顺便提一下,由于您使用双引号(")包装$sql变量,因此您可以只写 ='$row2'而不是='".$row2."'。这可能会增加代码的可读性(至少在我看来是这样)。 - Lelio Faieta
STATIC $row1=fgets($dc,120); 像这样 SAI KIRAN? - Avram Alex
像这样... $row1 = '主题值'; $row2 = '用户值'; $row3 = 'id2值'; - Sai Kiran Sripada
显示剩余10条评论
1个回答

2

密码是故意为空的吗?

尝试添加

if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
        . $mysqli->connect_error);
}

此外,根据 https://php.net/manual/ro/mysqli.query.php 的说明,这可能有所帮助:
if ($result = $mysqli->query($sql)) {
    echo $result->num_rows;
    /* close result set */
    $result->close();
}

如果您正在使用多个返回结果的查询,请使用->close();关闭之前的结果。

1
你应该更新你的答案,使用面向对象的风格,因为他正在使用它。在这种情况下,应该是$conn->connect_errno - Seer
@Seer 谢谢你提醒我。我已经更新了我的答案。 - Alex Tartan
这也应该是一个注释。 - vaso123
是的,它是空的,因为我使用WAMP服务器,而且我从未更改过密码。 - Avram Alex
默认密码是'' - Avram Alex
我的最后一次更新在评论中没有适当地显示。请查看更新后的答案。 - Alex Tartan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接