【发布时间】:2019-01-24 10:05:38
【问题描述】:
我真的是 PHP 新手,需要一些帮助。
我想建立一个可以上传帖子和图片的论坛。
现在,我需要有关我的代码和 MySQL 数据库之间连接的帮助。
我正在使用带有下表的 MySQL:
主表:“帖子”
- post_data = 这是来自用户的 POST 请求。
- 用户名 = 来自另一个主表:用户
- user_id = 来自另一个主表:用户
- post_id = 自动。
我想发布从用户那里获得的数据,但我真的不知道问题出在哪里。
这是 PHP 代码:
<?php
session_start();
$MySQLdb = new PDO("mysql:host=127.0.0.1;dbname=forum", "root", "");
$MySQLdb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(isset($_POST['msg'])){
$post = $_POST['msg'];
$cursor = $MySQLdb->prepare("SELECT post_data FROM posts WHERE post=:posts_data");
$cursor->execute( array(":post_data"=>$post) );
}
$cursor = $MySQLdb->prepare("INSERT INTO posts (post) value (:post_data)");
$cursor->execute(array(":post_data"=>$post));?>
这是“msg”(帖子输入)的 HTML 代码:
div class="input-group">
<input id="msg" type="text" method="POST" class="form-control" name="msg" placeholder="Write your message here...">
<span class="input-group-addon"><button id="send_post">Send</button></span>
</div>
这是我得到的错误:
注意:未定义变量:发布在 C:\xampp\htdocs\forum\main.php 的第 15 行
致命错误:未捕获的 PDOException:SQLSTATE[42S22]:未找到列: 1054 '字段列表'中的未知列'post' C:\xampp\htdocs\forum\main.php:15 堆栈跟踪:#0 C:\xampp\htdocs\forum\main.php(15): PDOStatement->execute(Array) #1 {main} 在第 15 行的 C:\xampp\htdocs\forum\main.php 中抛出
非常感谢。
【问题讨论】:
-
WHERE post=:posts_data您的表描述中没有名为post的列。 -
供您参考,不能"insert to phpMyAdmin",这是一个工具用来管理MySQL数据库,像 MySQL 工作台
-
您也在查询中使用
:posts_data,但在执行中使用:post_data。这将是您遇到的下一个错误。 -
您的 $post 变量为空
-
抱歉,您插入的是 POST 列,而不是 POST_DATA 列,它恰好是您在 POSTS TBL 中的列名