当我将此代码添加到我的 Php 文件中时
include "sql_connect.php";
$query_blog="SELECT * FROM messages";
$result_blog=mysql_query($query_blog);
$num_blog=mysql_numrows($result_blog);
mysql_close();
$sql_index_menu="0";
while ($sql_index_menu < $num) {
$msg_subject=mysql_result($result,$sql_index_menu,"subject");
$msg_id=mysql_result($result,$sql_index_menu,"id");
$msg_from=mysql_result($result,$sql_index_menu,"from");
$msg_to=mysql_result($result,$sql_index_menu,"recipient");
$msg_text=mysql_result($result,$sql_index_menu,"text");
$msg_time=mysql_result($result,$sql_index_menu,"time");
$msg_read=mysql_result($result,$sql_index_menu,"readed");
?>
<tr>
<td><a href="?action=view&id=<?php echo $msg_id; ?>&lang=<?php echo $actLang; ?>"><?php if($msg_read == "0") {echo "<img src='/images/message.gif' width='32' height='32'>";} else {echo "<img src='/images/message.png' width='32' height='32'>";}?> <?php echo $msg_time; ?></a></td><td><a href="?action=view&id=<?php echo $msg_id; ?>&lang=<?php echo $actLang; ?>"><?php echo $msg_subject; ?></a></td><td><a href="?action=view&id=<?php echo $msg_id; ?>&lang=<?php echo $actLang; ?>"><?php echo $msg_from; ?></a></td>
</tr>
<?php
$sql_index_menu++;
}
一切都有效,但是,当我将其添加到 $query_blog 时
$query_blog="SELECT * FROM messages WHERE recipent='$username'";
所以它行不通..
我试图用我的名字更改$username,但它仍然不起作用。
这段代码正在工作,所以我复制了它,但仍然一无所获......
include "sql_connect.php";
$query="UPDATE messages
SET readed='1'
WHERE id='$id'";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
include "sql_connect.php";
$query_blog="SELECT * FROM messages WHERE id='$id'";
$result_blog=mysql_query($query_blog);
$num_blog=mysql_numrows($result_blog);
mysql_close();
$msg_text=mysql_result($result_blog,$sql_index_blog,"text");
$msg_from=mysql_result($result_blog,$sql_index_blog,"from");
$msg_subject=mysql_result($result_blog,$sql_index_blog,"subject");
$msg_time=mysql_result($result_blog,$sql_index_blog,"time");
你可以帮我吗?
我禁用了页面所需的登录,所以现在您可以看到该页面(抱歉语言:D(如您所见,没有错误网站
如
前所述,有一个拼写错误,无论如何,您输入了收件人 - 我建议您使用 mysql_error(( 函数来调试您的代码,一个例子是:
$result=mysql_query($query) or die("<b>error:</b>".mysql_error()."line:".__LINE__);
在PHP中调试代码的最简单方法是使用echo或print_r。
在这种情况下,您可以在设置后在 $query_blog 上包含 echo,并在 mysql IDE(或 mysql 命令行(中运行结果。
$query_blog="SELECT * FROM messages WHERE recipent='$username'";
echo $query_blog;
此外,在 where 上使用引号不是一个很好的 msyql 做法,因为您的代码容易受到注入的影响。
相反,请使用以下内容:
$result = sprintf("SELECT * FROM messages WHERE recipent='%s'", mysql_real_escape_string($username));
$result = mysql_query($query);
if (!$result) {
$message = 'Invalid query: ' . mysql_error() . "'n";
$message .= 'Whole query: ' . $result
die($message);
}
如果你从php查询mysql数据库,并且你想在查询中使用php变量,你必须转义它们,否则你传递的是字符串'$username',而不是存储在$username中的值。
这对你有用吗?
$query_blog="SELECT * FROM messages WHERE recipent='" . $username . "'";
var_dump($query_blog);