PHP形式的mysql插入语句

Posted

技术标签:

【中文标题】PHP形式的mysql插入语句【英文标题】:mysql insert statement in PHP form 【发布时间】:2016-03-13 00:14:01 【问题描述】:

我想在php 中显示一个列表,其中包含mysql-database 中的条目。它可以工作,现在在同一个.php 文件中,一个表单应该在数据库中插入一个新条目,然后它应该显示在列表中。我的尝试失败了,每次访问该站点时,最后一个条目总是插入到数据库中。下面是我的代码:

PHP-Part adminlist.php:

$adminname = mysqli_real_escape_string($con, $_POST['adminname']);
    $server = mysqli_real_escape_string($con, $_POST['server']);

if(!empty($adminname && $server))

    $insert =  "INSERT INTO admins (ID, Name, Passwort, Server, Anmeldungen) VALUES (NULL, '" . $adminname . "', '', '" . $server . "', '0')";
    $insertquery = mysqli_query($con, $insert);

html 部分 adminlist.php:

<form name='einfuegen' action='adminlist.php' method='post'>
            <table>
                <tr>
                    <th>Name</th>
                    <th>Server</th>
                </tr>
                <tr>
                    <td><input name='adminname' value='' /></td>
                    <td><input name='server' value='' /></td>
                    <td><input type='submit' value='Einf&uuml;gen' /></td>
                </tr>
            </table>
        </form>

我也试过在表格下设置

$server = 0;
$adminname = 0;

并编辑了以上内容:

if(!empty($adminname && $server) && ($server != 0) && ($adminname != 0))

在这种情况下,它将不起作用,并且没有插入任何内容。如何设置只插入一个然后显示在列表中?

【问题讨论】:

插入数据后重新加载页面 请使用if(!empty($adminname) &amp;&amp; !empty($server)) 而不是if(!empty($adminname &amp;&amp; $server)) @mapek 更好,只需使用 if($adminname &amp;&amp; $server),因为这两个变量都已定义。 【参考方案1】:

将此if(!empty($adminname &amp;&amp; $server)) 更改为if(!empty($adminname) &amp;&amp; !empty($server)) 并且,不要不必要地连接插入值。

编辑的代码

if(!empty($adminname) && !empty($server))

    $insert =  "INSERT INTO admins (ID, Name, Passwort, Server, Anmeldungen) VALUES (NULL, '$adminname','', '$server', '0')";
    $insertquery = mysqli_query($con, $insert);

对于 OP:

提交后使用header("location:adminlist.php"); 进行重定向。

<?php
error_reporting(0);

if($_POST['submitValue']) 

    $adminname = mysqli_real_escape_string($con, $_POST['adminname']);
    $server = mysqli_real_escape_string($con, $_POST['server']);

    $insert =  "INSERT INTO admins (ID, Name, Passwort, Server, Anmeldungen) VALUES (NULL, '$adminname','', '$server', '0')";
    $insertquery = mysqli_query($con, $insert);

    header("location:adminlist.php");

?>



<form name='einfuegen' action='' method='post'>
    <table>
        <tr>
            <th>Name</th>
            <th>Server</th>
        </tr>
        <tr>
            <td><input name='adminname' value='' /></td>
            <td><input name='server' value='' /></td>
            <td><input type='submit' name='submitValue' value='Einf&uuml;gen' /></td>
        </tr>
    </table>
</form>

【讨论】:

顺便说一句,你的个人资料是我在 SOF 上见过的最有趣的个人资料。根本没有严肃的事情。大声笑! 谢谢@AnandG Jee。 Be Funny. Go Sunny 所以我不需要“ $server = 0; $adminname = 0;”在他的底部? 没有。不,不是那样的。为什么不必要地连接'" . $adminname . "'。这不是错误。只是为了更好地编写代码。只有@JohnHSmith 让我觉得很轻松 但是刷新页面后如何删除表单中最后给定的单词?

以上是关于PHP形式的mysql插入语句的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL批量插入语句怎么写

正确格式化的 MySQL 日期插入语句返回全 0

navicat mysql导出数据 批量插入的形式

PHP将语句插入XAMPP MySQL数据库不会导致表更新[重复]

PHP Mysql-插入多条数据

MySQL 常用插入语法总结