[英]Finding reason for MySQL query not working
好的。 我的网站上有以下代码:
<?php
session_start();
include "database.php";
include "bruger.php";
$bruger = new bruger();
if( $bruger->logget_ind() ){
$brugernavn = $_SESSION['brugernavn'];
$bruger_slash = addslashes($brugernavn);
$hnavnn = mysql_query(" SELECT hnavn FROM bruger WHERE brugernavn = '" . $bruger_slash . "'");
$hnavn = mysql_fetch_row($hnavnn);
$hinfoo = mysql_query(" SELECT besked, Afsender FROM $hnavn[0]");
while ($hinfo = mysql_fetch_array($hinfoo)){
echo "<form method = post action = $PHP_SELF>\n";
echo "Ja<input type=radio name=valg1 value=\"ja\"> Nej<input type=radio name=valg value=\"nej\">";
echo "<input type=submit value=\"Svar\">\n";
if (isset($_POST["valg1"])){
$brugernavn = $_SESSION['brugernavn'];
$bruger_slash = addslashes($brugernavn);
$frahvem = $hinfo["Afsender"];
$query = "UPDATE bruger SET `Status` = '$frahvem' WHERE brugernavn = '$bruger_slash'";
mysql_query($query) or die (mysql_error());
$query1 = "UPDATE bruger SET `Ansfra` = 'Nej' WHERE hnavn = '$frahvem'";
mysql_query($query1) or die (mysql_error());
echo "Du har nu givet dit svar!";
}
echo "<br>";
}
}
else {
echo "Du er ikke logget ind";
}
?>
我一直试图在八天之内找到一些帮助,所以我很绝望:)看起来好像它只运行第一个mysql_query,而不运行下一个。 嗯..
谁能看到什么故障?
(对不起,我的英语不好 ;) .. )
任何mysql_ *函数都可能失败。 在这种情况下,它们将返回false
并且mysql_error()可以告诉您更多有关原因的信息。
使用它来实现某种错误处理。
基本示例:
include "bruger.php";
define('DEBUGOUTPUT', 1);
...
$bruger_slash = mysql_real_escape_string($brugernavn); // you should pass the mysql connection resource as 2nd paramter here
$hnavnn = mysql_query("SELECT hnavn FROM bruger WHERE brugernavn = '" . $bruger_slash . "'");
if ( !$hnavnn ) {
if ( defined('DEBUGOUTPUT') && DEBUGOUTPUT ) {
echo 'mysql_error: ', mysql_error(), "\n";
}
echo "query failed.";
return;
}
$hnavn = mysql_fetch_row($hnavnn);
if ( !$hnavn ) {
echo 'no such brugernavn';
return;
}
$hinfoo = mysql_query(" SELECT besked, Afsender FROM `$hnavn[0]`");
if ( !$hinfoo ) {
if ( defined('DEBUGOUTPUT') && DEBUGOUTPUT ) {
echo 'mysql_error: ', mysql_error(), "\n";
}
echo "query failed.";
return;
}
可能有什么问题。 没有足够的信息可以在调试过程中始终看到这一点。 但是,请尝试以下几件事:
1-实施错误处理,以查看数据库连接是否有问题。
2-确认$ bruger_slash实际上包含一个值。
3-尝试在$ hinfoo查询中添加刻度线:
$hinfoo = mysql_query(" SELECT besked, Afsender FROM `$hnavn[0]`");
4-更新数组引用变量$ frahvem = $ hinfo [“ Afsender”]; 使用单个刻度线:
$frahvem = $hinfo['Afsender'];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.