使用mysql相关函数时出现PHP错误

Zac*_*own 0 php mysql

我有另一个脚本,我无法弄清楚它有什么问题.我试图使用

error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)

报告错误,但它没有报告任何内容.无论如何,这是我遇到麻烦的代码.

<?php
error_reporting(E_ALL);
$username = $_POST['user'];
$email = $_POST['email'];
$password = md5($_POST['pass']);
$currname = $_COOKIE['ZBrownTechnologyCorporationBeta'];

$con = mysql_connect("HOST", "USER", "PASS");
if (!$con) {
  die('Unable to connect: '.mysql_error());
}

mysql_select_database("zach_blogin", $con);

if(empty($password)) {
  $nothing = "nothing";
} else {
  mysql_query("UPDATE members SET password = '$password' WHERE username = '$currname'");
}


mysql_query("UPDATE members SET Email = '$email' WHERE username = '$currname'");

if($username==$currname) {
  $nothing = "nothing";
} else {
  $query = ("SELECT username from members WHERE username = '$username'");
  $result = mysql_query($query);
  if (!$result) {
    header("Location: " . $_SERVER['HTTP_HOST'] . "/public_html/Beta/account.php?invalid");
    exit;
  }
}
mysql_query("UPDATE members SET username = '$username' WHERE username = '$currname'");
header("Location: ". $_SERVER['HTTP_HOST'] . "/public_html/Beta/main_login.php?update");
?>
Run Code Online (Sandbox Code Playgroud)

我已经查看了这段代码了一段时间了.似乎无法让错误报告工作,所以我在这里.感谢所有帮助过的人,以及谁将提供帮助!


根据@Klinky的要求:

尝试在Opera中使用此页面(名为myinfo.php)时,它会显示默认消息,指示它无法找到页面和/或服务器.在Internet Explorer 8中,它显示500内部服务器错误.

以下是服务器规格: 操作系统: Linux HTTP: Apache v2.0.63 PHP: 5.3.3 MySQL: 5.0.91-community


我查看了日志,这是错误消息:

[Sat Sep 25 21:34:08 2010] [error] [client 68.52.52.190] PHP Fatal error:  Call to undefined function mysql_select_database() in /home/zach/public_html/Beta/myinfo.php on line 12, referer: http://zbrowntechnology.com/Beta/account.php
Run Code Online (Sandbox Code Playgroud)

唯一的是,我试图选择的数据库确实存在!

cod*_*ict 6

您的所有UPDATE查询都缺少表名:

UPDATE TABLE_NAME SET .....
          ^^^^^
         missing
Run Code Online (Sandbox Code Playgroud)

我建议,每次打电话mysql_query()检查其返回值.如果是false,查询执行失败,您可以通过调用获得失败的原因mysql_error()

$result = mysql_query($query);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}
Run Code Online (Sandbox Code Playgroud)

更多错误:

您需要在查询中用单引号括起字符串:

mysql_query("UPDATE members SET password = '$password'....
                                           ^         ^
                                             missing
Run Code Online (Sandbox Code Playgroud)

在查询中使用字符串的任何地方都可以.

  • `但它仍然不起作用 - 什么不起作用?你有任何错误吗?你检查了对mysql_query`的所有调用的返回值吗?如答案所示? (2认同)