【问题标题】:I can't store the data into MySQL我无法将数据存储到 MySQL
【发布时间】:2014-02-08 12:56:22
【问题描述】:

所以我有这个表格。我想将数据存储到我的数据库中。但是,事实并非如此,也没有错误日志。非常感谢您的帮助,因为它会在 2 天内到期,而且我在过去一周左右一直在尝试。

<form enctype="multipart/form-data" action="preview.php" method="post" class="f">
                <p>

                <p>
                            <p><label for="name">Teacher's Name:</label>
                                <input type="text" style="font-family:Gloria Hallelujah" size="35" name="name" id="name" autofocus required></p>
                            <p><label for="name">Title:</label>
                                <input type="text" style="font-family:Gloria Hallelujah" size="35" name="title" id="title" autofocus required></p>  
                            <p><label for="done">Done By:</label>
                                <input type="text" style="font-family:Gloria Hallelujah" size="35" name="done" id="done" required></p>
                            <p><label for="no">Class:</label>
                                <input type="text" style="font-family:Gloria Hallelujah" size="15" name="class" id="no" required></p>
                            <p><label for="sch">School:</label>
                                <select name="sch">
                                    <option value="seg">School of Engineering (SEG)</option>
                                    <option value="sit">School of Information Technology (SIT)</option>
                                    <option value="sdn">School of Design (SDN)</option>
                                    <option value="sbm">School of Business Management (SBM)</option>
                                    <option value="shs">School of Health Sciences (SHS)</option>
                                    <option value="scl">School of Chemical & Life Sciences (SCL)</option>
                                    <option value="sidm">School of Interactive and Digital Media (SIDM)</option>
                                </select>

                                            <p><label for="msg">Show your Gratitude! :</label>
                            <textarea class="tarea" maxlength="3000" cols="38.5" rows="6" name="comments" placeholder="Enter Message here..." required></textarea>
                            <p class="limit">Char limit: 3000 chars.</p>
                        </p>

然后它会转到应该存储数据的 preview.php。

<?php
include "mysqli.connect.php";
include "fbmain.php";

$sql = "INSERT INTO table(teacherName, title, doneBy, studentClass, school, message)VALUES    ('$_POST[name]','$_POST[title]','$_POST[done]','$_POST[class]','$_POST[comments]') where     facebookId = '".$me['id']."'";

【问题讨论】:

  • 从插入查询中移除 where 条件
  • 例如'{$_POST['name']}' 但请参阅 sql 注入和准备好的语句 - 哦,那也是
  • 由于SQL注入stackoverflow.com/questions/332365/…直接在sql中使用$_POST[name]时要非常小心@
  • 试过'{$_POST['name']}',但不起作用。我并不担心 SQL 注入。

标签: php mysql database insert


【解决方案1】:

INSERT 命令不需要WHERE 子句。

P.S :你对SQL Injection很开放。

【讨论】:

  • 亲爱的 Alireza,这是 Mysqli 的错误报告器 if (mysqli_connect_errno()) { echo mysqli_connect_error(); exit(); }
  • @Exclusified 尝试echo mysqli_connect_error(); exit();
【解决方案2】:
('$_POST[name]','$_POST[title]','...

改为:

('{$_POST[name]}','{$_POST[title]}','...


这个更好
http://ir1.php.net/mysqli_query 并检查数据库并检查WHERE structs
您可以通过在查询后放置此代码来显示错误并修复它们

if (mysqli_connect_errno()) {
  echo mysqli_connect_error();
  exit();
}

【讨论】:

  • 改了,但是没用。我也尝试显示错误,但没有错误。
  • "Alireza 说:" ` where facebookId = '".$me['id']."'` 对于 INSERT 结构无效!!!
  • 这是个坏问题而且我没有这个来源......也许错误是针对其他代码的。而且我没有足够的时间;)
【解决方案3】:

$_POST[name] 与 $_POST['name'] 不同,$_POST[title] 与 $_POST['title'] 不同等等。

代替:

$sql = "INSERT INTO table(teacherName, title, doneBy, studentClass, school, message)VALUES    ('$_POST[name]','$_POST[title]','$_POST[done]','$_POST[class]','$_POST[comments]') where     facebookId = '".$me['id']."'";

试试

$name = $_POST['name'];
$title = $_POST['title'];
$done = $_POST['done'];
$class = $_POST['class'];
$comments = $_POST['comments'];

$sql = "INSERT INTO table(teacherName, title, doneBy, studentClass, school, message)VALUES    ('{$name}','{$title}','{$done}','{$class}','{comments}') where     facebookId = '".$me['id']."'";

但以上只是为了让它工作!

不推荐这样做。您应该使用参数化查询来做到这一点...http://forum.codecall.net/topic/44392-php-5-mysqli-prepared-statements/

【讨论】:

  • 变量+ $me['id'] 的值是什么?
  • 对不起,我对 PHP 很陌生。我不太明白你的问题。
  • 如果你做 echo $name; - 它在屏幕上打印什么?
猜你喜欢
  • 2020-01-19
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 2017-12-25
  • 2021-12-23
相关资源
最近更新 更多