我目前正在尝试使用PHP将数据插入MySQL数据库。为了提供帮助,我正在关注this教程。
到目前为止,我已采取以下步骤:
创建了一个名为“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数据库的新手,所以老实说我完全不知道我哪里出错了。任何帮助将不胜感激!
答案 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 stackoverflow
。members
(
id
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扩展类似的方式使用。 因此,除非您只修改旧项目(即便如此,您可能还需要考虑升级代码)