php中未插入mysql数据库的数据

php中未插入mysql数据库的数据,php,html,database,insert,Php,Html,Database,Insert,我正在尝试将数据插入mysql数据库,但一切正常,没有发生错误,但当我浏览数据时,所以它没有插入数据库,我的编码请检查它 这里是我的html代码: <html> <head> <title>Insert Latest News</title> </head> <body> <form action="insert_post.php" method="POST" enctype="multipart/form-d

我正在尝试将数据插入mysql数据库,但一切正常,没有发生错误,但当我浏览数据时,所以它没有插入数据库,我的编码请检查它

这里是我的html代码:

<html> <head>

<title>Insert Latest News</title>

</head>

<body>

<form action="insert_post.php" method="POST" enctype="multipart/form-data">

<table align="center" border="10" width="800">

<tr> <td align="center" colspan="5" bgcolor="yellow"><h1>Insert Latest News</h1></td> </tr>

<tr> <td>Post Title</td> <td><input type="text" name="title" size="30" /></td> </tr>

<tr> <td>Post Author</td> <td><input type="text" name="author" /></td> </tr>

<tr> <td>Post Image</td> <td><input type="file" name="image" /></td> </tr>

<tr> <td>Post Content</td> <td><textarea name="content" cols="50" rows="20"></textarea></td> </tr>

<tr> <td colspan="5" align="center"><input type="submit" name="submit" value="Publish" /></td> </tr> </table>

</form> </body> </html>
下面是我的php代码:

<?php require("connect.php");

if (isset($_POST['submit'])){

    $title = $_POST['title'];
    $author = $_POST['author'];
    $content = $_POST['content'];
    $image_name = $_FILES['image']['name'];
    $image_type = $_FILES['image']['type'];
    $image_size = $_FILES['image']['size'];
    $image_tmp = $_FILES['image']['tmp_name'];
    $date = Date('y/m/d');

    if ($title=='' or $author=='' or $content=='' or $image_name==''){

        echo "<script>alert('Any feild is empty')</script>";
        exit();
    }
    if ($image_type=='image/jpeg' or $image_type=='image/png' 
    or $image_type=='image/gif' or $image_type=='image/jpg'){

        echo "";
    } else {
        echo "<script>alert('your image type is not allowed')</script>";
    }
    if ($image_size<=1000000){
        move_uploaded_file ($image_tmp, "images/$image_name");  
        exit();
    } else {

      echo "<script>alert('Image is larger, not allowed by admin ')</script>";
    }

    $query = "INSERT INTO news
             (news_title, news_author, news_content, news_image, news_date) 
             values($title,$author, $content, $image_name, $date,)";

    if ($query){
        echo "<center><h1>Your News has Been Published</h1></center>";
    } 
} 
?>

您忘记执行查询: $result=mysql\u query$query

您忘了建立连接:

$connection = mysql_connect(DB_HOST, DB_USER , DB_PASS) 
or die("Could not connect to the database."); 
mysql_select_db(DB_NAME) or die ("Database could not be selected."); 

顺便说一下,我会使用1048576而不是1000000作为您的最大图像大小。

您忘记执行查询了: $result=mysql\u query$query

您忘了建立连接:

$connection = mysql_connect(DB_HOST, DB_USER , DB_PASS) 
or die("Could not connect to the database."); 
mysql_select_db(DB_NAME) or die ("Database could not be selected."); 

顺便说一下,我会使用1048576而不是1000000作为您的最大图像大小。

您的代码基本上很糟糕:

1易受 2完全没有上传验证 3只是假设所有操作都成功

你的主要问题是忽略其他问题:

4由于查询字符串中缺少引号和额外逗号而导致的语法错误:

$query = "INSERT INTO news
(news_title, news_author, news_content, news_image, news_date) 
values('$title','$author', '$content', '$image_name', '$date',)";
       ^------^-^-------^--^--------^--^-----------^--^-----^---missing
                                                             ^---wrong

如果你做过任何防御性编程,例如检查错误,你就会被告知你的sql语法问题。。。永远不要假设成功。始终假设失败,检查失败,并将成功视为惊喜。

您的代码基本上是可怕的:

1易受 2完全没有上传验证 3只是假设所有操作都成功

你的主要问题是忽略其他问题:

4由于查询字符串中缺少引号和额外逗号而导致的语法错误:

$query = "INSERT INTO news
(news_title, news_author, news_content, news_image, news_date) 
values('$title','$author', '$content', '$image_name', '$date',)";
       ^------^-^-------^--^--------^--^-----------^--^-----^---missing
                                                             ^---wrong
如果你做过任何防御性编程,例如检查错误,你就会被告知你的sql语法问题。。。永远不要假设成功。始终假设失败,检查失败,并将成功视为意外惊喜。

$title、$author、$content、$image\u name、$date使您失败的原因有几个

字符串文字要求它们被引用,并且后面有一个逗号

“$title”、“$author”、“$content”、“$image\u name”、“$date”

参考:

您也没有进行查询,并且用于连接的MySQL API未知

php是潘多拉的盒子。 咨询:

在PHP中查询MySQL数据库时,供您阅读的查询方法

-MySQLi_ -MySQL_ -PDO 确保你没有把它们混在一起

咨询:

添加到文件的顶部,这将有助于查找错误

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Then the rest of your code
附加编辑:

看到您放置的此评论:

这里是我的connect.php文件代码:$connect=mysql_connectlocalhost,root$con=mysql\u select\u dbexpress,$connect;如果$con{echo;}否则{echo数据库未连接;}

您需要在这里使用mysql\u error检查真正的错误

然后,我上面的编辑将需要更改为mysql_查询,如果需要连接,则需要将其作为最后一个参数

我建议您切换到MySQLi_uu2;或pdoapi

这些链接已在我的回答中提供

MySQL_uu方法

旁注:如果需要连接,请执行If$query$connection

如果仍然失败,那么您很可能需要切换到MySQLi_u2;或PDO

祝你好运 $title、$author、$content、$image\u name、$date由于一些原因使您失败

字符串文字要求它们被引用,并且后面有一个逗号

“$title”、“$author”、“$content”、“$image\u name”、“$date”

参考:

您也没有进行查询,并且用于连接的MySQL API未知

php是潘多拉的盒子。 咨询:

在PHP中查询MySQL数据库时,供您阅读的查询方法

-MySQLi_ -MySQL_ -PDO 确保你没有把它们混在一起

咨询:

添加到文件的顶部,这将有助于查找错误

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Then the rest of your code
附加编辑:

看到您放置的此评论:

这里是我的connect.php文件代码:$connect=mysql_connectlocalhost,root$con=mysql\u select\u dbexpress,$connect;如果$con{echo;}否则{echo数据库未连接;}

您需要在这里使用mysql\u error检查真正的错误

然后,我上面的编辑将需要更改为mysql_查询,如果需要连接,则需要将其作为最后一个参数

我建议您切换到MySQLi_uu2;或pdoapi

这些链接已在我的回答中提供

MySQL_uu方法

旁注:如果需要连接,请执行If$query$connection

如果仍然失败,那么您很可能需要切换到MySQLi_u2;或PDO

祝你好运
对于一些像我一样发现大多数答案都不能解决问题的人来说,试试看

if (!mysqli_commit($link)) print("<p>Transaction commit failed</p>\n");

某些mysql或Mariadb发行版似乎已经关闭了自动提交功能。关键在于,当我将查询直接粘贴到mysql中时,我发现ID在增加,表中没有数据。

对于一些像我一样发现大多数答案都无法解决问题的人,请尝试

if (!mysqli_commit($link)) print("<p>Transaction commit failed</p>\n");
看来
某些mysql或Mariadb发行版可能已关闭自动提交。关键在于,当我将查询直接粘贴到mysql中时,我发现ID在增加,表中没有数据。

您忘记在mysql值插入中加引号了

$query = "INSERT INTO news
             (news_title, news_author, news_content, news_image, news_date) 
             values($title,$author, $content, $image_name, $date,)";
你必须先加引号,然后保存

$query = "INSERT INTO news
             (news_title, news_author, news_content, news_image, news_date) 
             values('$title', '$author', '$content', '$image_name', '$date',)";

您忘记在mysql值插入中加引号了

$query = "INSERT INTO news
             (news_title, news_author, news_content, news_image, news_date) 
             values($title,$author, $content, $image_name, $date,)";
你必须先加引号,然后保存

$query = "INSERT INTO news
             (news_title, news_author, news_content, news_image, news_date) 
             values('$title', '$author', '$content', '$image_name', '$date',)";


另外,在你的$query$title、$author、$content、$image\u name、$date中是否有一些原因让你失败。你的db连接器在哪里?它应该是$db\u connection->query$your\u query在你的if条件中。我们真正想知道的是connect.php中的内容,以及你是使用mysql、mysqli、PDO还是其他连接工具。您没有标记为mysql,因此我们所知道的可能是MSSQL。另外,您的$query$title、$author、$content、$image\u name、$date中是否有一些原因使您失败。您的db连接器在哪里?它应该是$db\u connection->query$your\u query in your if条件我们真正想知道的,是connect.php中的内容,以及您是否正在使用mysql_uu、mysqli_uu、PDO或其他连接。您没有标记为mysql,所以我们知道它可能是MSSQL;在我编写的connect.php文件中:$connect=mysql_connectlocalhost,root$con=mysql\u select\u dbexpress,$connect;如果$con{echo;}否则{echo数据库未连接;}确定。但无论如何,你忘了用mysql\u query$query或mysqli\u query执行它$query@J.Gower旁注:mysqli_query$query mysqli_API需要将db连接传递给它,并作为第一个参数。即:mysqli_query$connection$query。然而,他们用来连接的API是完全未知的。我的错。但只是在mysql语句中添加了一个i,却忘记了添加它。谢谢:D@J.Gower我对你的答案投了赞成票,因为OP一直都在使用mysql_uuAPI连接。这对他们是否有效还不得而知。也许他们的系统不再支持那个旧的API了;在我编写的connect.php文件中:$connect=mysql_connectlocalhost,root$con=mysql\u select\u dbexpress,$connect;如果$con{echo;}否则{echo数据库未连接;}确定。但无论如何,你忘了用mysql\u query$query或mysqli\u query执行它$query@J.Gower旁注:mysqli_query$query mysqli_API需要将db连接传递给它,并作为第一个参数。即:mysqli_query$connection$query。然而,他们用来连接的API是完全未知的。我的错。但只是在mysql语句中添加了一个i,却忘记了添加它。谢谢:D@J.Gower我对你的答案投了赞成票,因为OP一直都在使用mysql_uuAPI连接。这对他们是否有效还不得而知。也许他们的系统不再支持那个旧的API。但我在另一台笔记本电脑上尝试了相同的代码,以便将数据正确插入数据库,我认为我的wamp服务器有任何问题,我卸载并多次安装了它,但问题是相同的,我使用的是64位windows 7。@ZubairAli我在你的问题和我的回答中给你留下了一条评论。我们不知道您正在使用哪个MySQL API进行连接,也不知道您是否首先成功连接。正如我和其他人所说,您没有查询数据库,需要向它传递一个连接。这是未知的。你需要阅读我在答案中留下的链接,然后从那里开始。对不起,我真的没有什么可以补充的。检查错误,正如我在回答中所说的那样。@ZubairAli我对我的回答做了额外的编辑,以尝试帮助您解决更多问题。重新加载并在“编辑”下查看:最后一次尝试帮助。-这将是最后一次尝试,对不起。我真诚地祝你在这方面好运。干杯,但我在另一台笔记本电脑上尝试了相同的代码,以便将数据正确插入数据库,我认为我的wamp服务器存在任何问题,我卸载并多次安装了它,但问题是相同的,我使用的是64位windows 7。@ZubairAli我在你的问题和我的回答中给你留下了评论。我们不知道您正在使用哪个MySQL API进行连接,也不知道您是否首先成功连接。正如我和其他人所说,您没有查询数据库,需要向它传递一个连接。这是未知的。你需要阅读我在答案中留下的链接,然后从那里开始。对不起,我真的没有什么可以补充的。检查错误,正如我在回答中所说的那样。@ZubairAli我对我的回答做了额外的编辑,以尝试帮助您解决更多问题。重新加载并在“编辑”下查看:最后一次尝试帮助。-这将是最后一次尝试,对不起。我真诚地祝你在这方面好运。干杯