使用PHP更新数据库时出错

时间:2011-07-07 05:33:09

标签: php mysql phpmyadmin mysql-error-1064

我目前正在尝试使用PHP将数据插入MySQL数据库。为了提供帮助,我正在关注this教程。

到目前为止,我已采取以下步骤:

  • 通过我的WAMPSERVER上名为“core_group_me”的phpMyAdmin手动创建数据库
  • 创建了一个名为“form.php”的表单页面(下面的代码):

    <html>
    <head>
    <title></title>
    </head>
    
    <body>
    <form method="post" action="update.php">
    
    Username:<br />
    
    <input type="text" name="id" size="30" /><br />
    
    First Name:<br />
    
    <input type="text" name="firstname" size="30" /><br />
    
    Last Name:<br />
    
    <input type="text" name="lastname" size="30" /><br />
    
    Email:<br />
    
    <input type="text" name="email" size="30" /><br />
    
    Location:<br />
    
    <input type="text" name="location" size="30" /><br />
    
    Expertise:<br />
    
    <input type="text" name="expertise" size="30" /><br /><br />
    
    <input type="submit" value="Update Database" />
    
    </body>
    </html>
    
  • 创建了一个页面来更新名为“update.php”的“core_group_me”数据库(下面的代码):

    <?php
    
    $id = $_POST['id'];
    $firstname = $_POST['firstname'];
    $lastname = $_POST['lastname'];
    $email = $_POST['email'];
    $location = $_POST['location'];
    $expertise = $_POST['expertise'];
    
    mysql_connect ("localhost", "core_group_me", "") or die ('Error: ' .mysql_error());
    mysql_select_db ("members");
    
    $query="INSERT INTO members (id, firstname, lastname, email, location, expertise)VALUES ('".$id."', '".$firstname."', '".$lastname."', '".$email."', '".$location."', '".$expertise."')";
    
    mysql_query($query) or die ('Error updating database');
    
    echo "Database Updated With: " .$id. " " .$firstname. " ".$lastname. " ".$email. " " .$location. " " .$expertise ;
    
    ?>
    

话虽这么说,当我打开“form.php”页面,在指定字段中输入信息并提交所有内容时,我收到以下错误:“更新数据库时出错”。我是非常用PHP编程和使用MySQL数据库的新手,所以老实说我完全不知道我哪里出错了。任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:2)

在下面一行中,使用您的mysql用户名而不是core_group_me,第三个参数是您的密码,如果您没有密码,请将其保留为空白,否则请写下您的密码。

mysql_connect ("localhost", "core_group_me", "") or die ('Error: ' .mysql_error());

例如:

mysql_connect ("localhost", "root", "123456") or die ('Error: ' .mysql_error());

并编辑此行:

mysql_select_db ("members");

成:

mysql_select_db ("core_group_me");

答案 1 :(得分:0)

我相信Francois提到了sql中的错误。为了避免收到骰子消息,您可以添加类似http://php.net/manual/de/function.mysql-error.php的内容。

mysql_query($query) or die ('Error updating database<br />' . mysql_errno() . ": " . mysql_error());

由于应用程序安全性变得越来越重要,您应该转义字符串以及检查输入的内容。我也不会向用户显示错误消息,我个人会将其写入日志文件

答案 2 :(得分:0)

使用此结构创建数据库:

CREATE TABLE stackoverflowmembersid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(30)NOT NULL, firstname VARCHAR(30)NOT NULL, lastname VARCHAR(30)NOT NULL, email VARCHAR(100)NOT NULL, location VARCHAR(30)NOT NULL, expertise VARCHAR(30)NOT NULL )ENGINE = MYISAM;

和update.php:

<?php

 $username = $_POST['id'];
 $firstname = $_POST['firstname'];
 $lastname = $_POST['lastname'];
 $email = $_POST['email'];
 $location = $_POST['location'];
 $expertise = $_POST['expertise'];

 mysql_connect ("localhost", "root", "yourpassword") or die(mysql_error());
 mysql_select_db ("stackoverflow");

 $query="INSERT INTO members (id,username, firstname, lastname, email, location, expertise) VALUES ('','$username', '$firstname', '$lastname', '$email', '$location', '$expertise')";

 mysql_query($query) or die (mysql_error());

 echo "Database Updated With: " .$username. " , " .$firstname. " , ".$lastname. " , ".$email. " , " .$location. " , " .$expertise ;

 ?>

不要将其复制并粘贴到您的文件中。只是尝试理解它..

答案 3 :(得分:0)

不确定这个答案是否足够主题。但是如果你是一个初学的PHP程序员,研究MySqli或PDO扩展来处理MySql可能是明智的,因为从PHP 5.5.0开始,mysql扩展被删除了。 (http://nl1.php.net/mysql_query) MySqli扩展可以与MySql扩展类似的方式使用。 因此,除非您只修改旧项目(即便如此,您可能还需要考虑升级代码)