我正在设立结婚邀请RSVP表格。我在这里应该是一个基本的PHP和SQL数据条目,但我一直收到错误:
“无法输入数据:未选择数据库”
更新 - 非常感谢你的所有建议。我已经更新了我的代码,你可以看到下面的内容。我现在得到一个新的错误如下:
“无法连接:”(女巫是我在第7行输出的消息,但它没有显示应该遵循的错误“)
有谁知道这意味着什么?
这是我的[更新]代码:
<?php
function submit(){
$con = mysqli_connect("localhost", "jaredand_rsvp", "jar3dandcr1st1na", "jaredand_rsvp");
if (!$con)
{
die('Could not connect: ' . $con->error);
}
$name = $_POST['name'];
$partnerName = $_POST['partner_name'];
$allergies = $_POST['allergies'];
$comments = $_POST['comment'];
$going = $_POST['going'];
$sql = 'INSERT INTO rsvp '.
'(name,partner_name, allergies, comments, going) '.
'VALUES ( "'.$name.'", "'.$partnerName.'", "'.$allergies.'", "'.$comments.'", "'.$going.'")';
$result = $con->query($sql);
if(!$result )
{
die('Could not enter data: ' . $result->error);
}
echo "Entered data successfully\n";
mysqli_close($con);
}
if(isset($_POST['name']))
{
submit();
}
?>
任何人都可以告诉我我做错了什么吗?
答案 0 :(得分:1)
这是因为mysql_connect没有数据库名称作为参数。
您应该连接到服务器,然后通过调用mysql_select_db
干杯!
答案 1 :(得分:0)
首先尝试连接数据库,然后选择数据库名称
我希望这可以解决您的问题
或者您可以使用PDO,因为mysql_connect已被删除
答案 2 :(得分:0)
如何使用MySQLi而不是现在贬值的MySQL?
修改强>
好的,我看不到与数据库的连接。像
这样的东西<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
如果您已将db connect凭证存储在另一个文件上,那么我在此脚本上看不到包含或要求提及。检查您是否已建立连接,然后再返回。
答案 3 :(得分:0)
这是正确的方法
$con = mysql_connect("localhost","USERNAME","PASSWORD);
mysql_select_db('jaredand_rsvp', $con);
但请使用“mysqli”
$con = mysqli_connect("localhost", "USERNAME", "PASSWORD, "jaredand_rsvp");
$result = $con->query($sql);
很乐意提供帮助, 如果在插入之前转义值,安全性会更好:
$name = $con->real_escape_string($_POST['name']);
$partnerName = $con->real_escape_string($_POST['partner_name']);
$allergies = $con->real_escape_string($_POST['allergies']);
$comments = $con->real_escape_string($_POST['comment']);
$going = $con->real_escape_string($_POST['going']);
答案 4 :(得分:0)
您使用过$ con = mysql_connect();你在顶部和底部使用:
mysqli_close();
首先遵循相同的标准。在top.i.e使用mysqli而不是sqli,
$con = mysqli_connect("localhost","USERNAME","PASSWORD", "jaredand_rsvp");
删除该行:mysql_select_db('jaredand_rsvp');
并用{替换$retval = mysql_query( $sql, $con );
$retval = mysqli_query( $sql, $con );
答案 5 :(得分:0)
以另一种方式使用
<?php
function submit() {
$host = "localhost";
$username = "root";
$password = "";
$dbname = "jaredand_rsvp";
$con = new mysqli($host, $username, $password, $dbname);
if ($conn -> connect_error) {
die("Connection failed: " . $conn -> connect_error);
}
$name = $_POST['name'];
$partnerName = $_POST['partner_name'];
$allergies = $_POST['allergies'];
$comments = $_POST['comment'];
$going = $_POST['going'];
$sql = 'INSERT INTO rsvp ' . '(name,partner_name, allergies, comments, going) ' . 'VALUES ( "' . $name . '", "' . $partnerName . '", "' . $allergies . '", "' . $comments . '", "' . $going . '")';
if($con->query($sql)== TRUE){
echo "Data Inserted";
}
else {
echo mysqli_error($con);
}
mysqli_close($con);
}
if (isset($_POST['name'])) {
submit();
}
?>