php - 无法将数据发布到我在 godaddy 上的数据库
问题描述
我对 php 很陌生,这是我的第一个项目。在这里,我有一个简单的 html 表单,可以将数据提交到 mySql 数据库。
我在 mySql 中创建了一个包含 3 列的表,第一列JobId
是 auro 增量字段和主键。第二个和第三个Title
是JobDescription
varchars。在我的 html 中,我填写数据并提交,数据应该发布在我创建的表中。
这是我的 HTML。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Post Job</title>
</head>
<body>
<form action="jobSubmit.php" method="Post">
<input type="text" name="jTitle" placeholder="Enter Title" required/>
<textarea name="jDesc" placeholder="Enter Job Description" required></textarea>
<button type="submit" value="Submit"></button>
</form>
</body>
</html>
这是我的php代码。
<?php
$jTitle = $_POST['jTitle'];
$jDesc = $_POST['jDesc'];
if (!empty($jTitle) && !empty($jDesc))
{
$host = "localhost";
$dbUserName = "muUserId";
$dbPassword = "myPwd";
$dbname = "Jobs";
try
{
$conn = new mysqli($host, $dbUserName, $dbPassword, $dbname);
}
catch(Exception $ex)
{
echo 'Error : ' . $ex->getMessage();
}
if (mysqli_connect_error())
{
die('Connect Error(' . mysqli_connect_errno() . ')' . mysqli_connect_error());
}
else
{
echo $jDesc . ' and ' . $jTitle;
//$SELECT = "SELECT JobId from OpenPositions Where JobId=? LIMIT 1";
$INSERT = "INSERT into OpenPositions (Title, JobDescription) values (?,?)";
$stmt = $conn->prepare($INSERT);
$stmt . bind_param("s,s", $jTitle, $jDesc);
try
{
$stmt . execute();
echo "New Record Inserted";
}
catch(Exception $ex)
{
echo 'Error : ' . $ex->getMessage();
}
$stmt->close();
$conn->close();
}
}
else
{
echo "Enter both Title and Desription";
die();
}
?>
当我运行它时,输入Test title
并Tse Desc
点击提交,我得到下面的屏幕。
还有一点我错过了更新。我在 godaddy 上托管这个。
请让我知道我哪里出错了,我该如何解决这个问题。
谢谢
更新 1
这是我的架构。
解决方案
#正确的代码是:
<?php
$jTitle = $_POST['jTitle'];
$jDesc = $_POST['jDesc'];
if (!empty($jTitle) && !empty($jDesc))
{
$host = "localhost";
$dbUserName = "root";
$dbPassword = "";
$dbname = "Jobs";
try
{
$conn = new mysqli($host, $dbUserName, $dbPassword, $dbname);
}
catch(Exception $ex)
{
echo 'Error : ' . $ex->getMessage();
}
if (mysqli_connect_error())
{
die('Connect Error(' . mysqli_connect_errno() . ')' . mysqli_connect_error());
}
else
{
echo $jDesc . ' and ' . $jTitle;
//$SELECT = "SELECT JobId from OpenPositions Where JobId=? LIMIT 1";
$INSERT = "INSERT into OpenPositions (Title, JobDescription) values (?,?)";
$stmt = $conn->prepare($INSERT);
$stmt->bind_param("ss",$jTitle,$jDesc);
try
{
$stmt->execute();
echo "New Record Inserted";
}
catch(Exception $ex)
{
echo 'Error : ' . $ex->getMessage();
}
$stmt->close();
$conn->close();
}
}
else
{
echo "Enter both Title and Desription";
die();
}
?>
#你的代码有什么问题:
bind_param() 是 $stmt 对象的一种方法,因此您需要像 $stmt->bind_param() 而不是 $stmt.bind_param() | 那样使用它。$stmt.execute() 也将是 $stmt->execute()
bind_param() 关于输入类型的第一个参数应该像 'ss' 而不是 's,s'
游览以清楚了解 bind_param() https://www.php.net/manual/en/mysqli-stmt.bind-param.php
现场演示
推荐阅读
- php - 我应该在哪里放置一个新的 sql 查询函数 Symfony 3
- wordpress - 如何在 Woocommerce 订单列表中更改批量操作订单
- nginx - nginx 反向代理到多个后端服务器,具体取决于 URL
- c# - 全局存储 ObservableCollection 项
- jenkins - Jenkins管道,将分支名称传递给gradle build
- angular - 在 Nginx 上部署 Angular 6 应用程序 - 禁止
- ios - 我是否需要获得后台位置更新的“始终”授权?
- django - 具有中继限制基于 ID 的查询访问的 Django 石墨烯
- html - Div hover is not working in every browser
- r - mailR 任务阻塞 R 服务器端口