Php 如何使用localhost将数据发送到数据库
我创建了一个注册表单。我在mysql中注册了数据库和成员表 我的register.php文件是:Php 如何使用localhost将数据发送到数据库,php,html,mysql,database,localhost,Php,Html,Mysql,Database,Localhost,我创建了一个注册表单。我在mysql中注册了数据库和成员表 我的register.php文件是: <?php //verileri gönderebilmek için önce bir veri tabanına bağlanmamız gerekir. include"connect.php"; //connect.php adında bir dosya açtık(veri tabanı kısmında kullanıcaz) //html deki register form
<?php
//verileri gönderebilmek için önce bir veri tabanına bağlanmamız gerekir.
include"connect.php"; //connect.php adında bir dosya açtık(veri tabanı kısmında kullanıcaz)
//html deki register formdan gelen verileri register.php ye almış oluyoruz..
$name = $_POST["firstname"]; //veriler POST ile gönderilir.
$sname = $_POST["surname"];
$male = $_POST["male"];
$fename = $_POST["female"];
$email = $_POST["eMail"];
$number = $_POST["phonenum"];
$password = $_POST["pword"];
//veritabanı tablosunda eşitliyoruz ex: member_name eşitse member_name e gibi.
$register=$db->prepare("INSERT INTO register SET
member_name=:member_name,
member_surname=:member_surname,
member_male=:member_male,
member_female=:member_female,
member_mail=:member_mail,
member_number=:member_number,
member_password=:member_password
");
//atama işlemini gerçekleştiriyoruz ex: member_name e POST tan gelen firstname i atıyoruz..
$insert=$register->execute(array(
'member_name' => $_POST['firstname'],
'member_surname' => $_POST['surname'],
'member_male' => $_POST['male'],
'member_female' => $_POST['female'],
'member_mail' => $_POST['eMail'],
'member_number' => $_POST['phonenum'],
'member_password' => $_POST['pword']
));
//insert işleminin başarılı olup olmadığını kontrol ediyoruz
//inser işlemi başarılı olursa buraya yönlendir
if($insert){
Header("Location:index.php?durum=ok");
}
//insert işlemi başarısız olursa buraya yönlendir
else{
Header("Location:xml_get_current_byte_index(parser).php?durum=no");
}
?>
<?php
//mysql de oluşturduğumuz veri tabanına erişim sağlamak için bunu kullanıyoruz
try {
//mysql:host=localhost(local hostta çalıştığımız için)
//dbname=member (oluşturduğum veritabanının ismi member)
//phpmyadmin için root(kullanıcı adı) ''(şifresiz girdiğimiz için boş)
$db = new PDO("mysql:host=localhost;dbname=register;charset=utf8",'root','');
}
catch (PDOExpception $e){
echo $e->getMessage();
}
?>
当我想使用localhost-->(!)在表单上注册成员时,会出现此错误。致命错误:未捕获PDOException:SQLSTATE[HY000][1049]未知数据库“register”,位于C:\wamp64\www\register\connect.php的第7行
(!)PDOException:SQLSTATE[HY000][1049]第7行C:\wamp64\www\register\connect.php中的未知数据库“register”
我的connect.php文件是:
<?php
//verileri gönderebilmek için önce bir veri tabanına bağlanmamız gerekir.
include"connect.php"; //connect.php adında bir dosya açtık(veri tabanı kısmında kullanıcaz)
//html deki register formdan gelen verileri register.php ye almış oluyoruz..
$name = $_POST["firstname"]; //veriler POST ile gönderilir.
$sname = $_POST["surname"];
$male = $_POST["male"];
$fename = $_POST["female"];
$email = $_POST["eMail"];
$number = $_POST["phonenum"];
$password = $_POST["pword"];
//veritabanı tablosunda eşitliyoruz ex: member_name eşitse member_name e gibi.
$register=$db->prepare("INSERT INTO register SET
member_name=:member_name,
member_surname=:member_surname,
member_male=:member_male,
member_female=:member_female,
member_mail=:member_mail,
member_number=:member_number,
member_password=:member_password
");
//atama işlemini gerçekleştiriyoruz ex: member_name e POST tan gelen firstname i atıyoruz..
$insert=$register->execute(array(
'member_name' => $_POST['firstname'],
'member_surname' => $_POST['surname'],
'member_male' => $_POST['male'],
'member_female' => $_POST['female'],
'member_mail' => $_POST['eMail'],
'member_number' => $_POST['phonenum'],
'member_password' => $_POST['pword']
));
//insert işleminin başarılı olup olmadığını kontrol ediyoruz
//inser işlemi başarılı olursa buraya yönlendir
if($insert){
Header("Location:index.php?durum=ok");
}
//insert işlemi başarısız olursa buraya yönlendir
else{
Header("Location:xml_get_current_byte_index(parser).php?durum=no");
}
?>
<?php
//mysql de oluşturduğumuz veri tabanına erişim sağlamak için bunu kullanıyoruz
try {
//mysql:host=localhost(local hostta çalıştığımız için)
//dbname=member (oluşturduğum veritabanının ismi member)
//phpmyadmin için root(kullanıcı adı) ''(şifresiz girdiğimiz için boş)
$db = new PDO("mysql:host=localhost;dbname=register;charset=utf8",'root','');
}
catch (PDOExpception $e){
echo $e->getMessage();
}
?>
PDOException:SQLSTATE[HY000][1049]未知数据库“register”明确表示您的MySql无法找到您在连接字符串中指定的数据库名称 很可能您在其他数据库主机而不是本地主机上“注册”了数据库。 您可能需要检查系统上是否存在其他数据库,如XAMPP或MAMP等
为了进一步支持您的声明,如果“注册”存在,并且您认为您的连接字符串正确,请将wamp的phpmyadmin的屏幕截图与数据库名“注册”共享,然后我们将能够进一步提供帮助。您的数据库名(注册)错误。请检查它,但它没有错。还会发生什么事吗?
pdoExpection
<你有打字错误。它应该读为PDOException
。您确定dbname=register
和您的查询吗?他们都有相同的名字。查询应该是“插入成员…”-但我仍然认为他的数据库服务器地址是错误的。我添加了我的屏幕截图,请检查。这是我的问题的顶部好的,您的屏幕截图显示了以下观察结果:1)Mysql正在端口3308上运行,您需要将其添加到PDO连接字符串中,如下更新:$db=new PDO(“Mysql:host=localhost;port=3308;dbname=register;charset=utf8”、'root'、“”);第二个观察结果是您的表名是member,所以您的insert查询将不起作用,请将“insert INTO REGISTER…”替换为“insert INTO member…”