Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法将数据发布到godaddy上的我的数据库_Php_Mysql - Fatal编程技术网

Php 无法将数据发布到godaddy上的我的数据库

Php 无法将数据发布到godaddy上的我的数据库,php,mysql,Php,Mysql,我对php非常陌生,这是我在这方面的第一个项目。这里我有一个简单的html表单,可以将数据提交到mySql数据库 我在mySql中创建了一个包含3列的表,第一列JobId,它是一个auro incriment字段和主键。第二个和第三个是标题,工作描述,它们是varchar。在我的html中,我填写数据并提交,数据应该发布在我创建的表中 这是我的HTML <!DOCTYPE html> <html lang="en"> <head>

我对php非常陌生,这是我在这方面的第一个项目。这里我有一个简单的html表单,可以将数据提交到mySql数据库

我在mySql中创建了一个包含3列的表,第一列
JobId
,它是一个auro incriment字段和主键。第二个和第三个是
标题
工作描述
,它们是varchar。在我的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();
}
?>

当我运行它时,输入
testtitle
Tse Desc
并点击submit,我会看到下面的屏幕

还有一点我没有更新。我在戈达迪主持这个节目

请让我知道我哪里出了问题,以及如何解决这个问题

谢谢

更新1

这是我的模式


检查PHP错误日志文件。您可以在php.ini中找到错误日志文件位置,error_log=“/path/to/error/logs”

放置
错误报告(E_ALL)
在php代码的顶部,不要忘记在错误解决后删除它。这将在您的页面上显示错误,而不是返回错误服务器500。

正确的代码是:

<?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();
}
?>

#代码中有什么错误:

<?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()的详细信息

    现场演示


    函数的源在哪里
    bind_param
    ?您好@Shailesh,是的。这是免费的。非常感谢。它现在工作正常,但数据没有插入,当我点击提交时,我看到一条消息为
    插入新记录
    ,你知道我可能会出错吗?这段代码工作正常,让我与你分享一张屏幕截图,更新了我与模式的问题。我使用的是
    tinytext
    longtext,
    s对我们有帮助吗?或者我们有其他类型规范吗?数据类型没有问题。您是否收到任何错误消息?如果没有,请打开服务器上的错误报告?哇兄弟。谢谢。这真的帮助了我。它现在运转良好。我犯的主要错误是使用
    s,s
    而不是
    ss