Php 为什么有些数据不';你不能保存在我的数据库里吗?

Php 为什么有些数据不';你不能保存在我的数据库里吗?,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我在保存数据库中的数据时遇到问题。我的意思是,例如,在我的公告请求表中,标题、描述、图像路径都保存在数据库中,除了由和提交的和batchYr之外 我的请求是这样的: <?php $login_session =$row['username']; $position = $row['position']; $login_fname = $row['firstname']; $login_lname = $row['lastname']; $batchYr = $row['batchYr']

我在保存数据库中的数据时遇到问题。我的意思是,例如,在我的公告请求表中,标题、描述、图像路径都保存在数据库中,除了由和提交的
batchYr
之外

我的请求是这样的:

<?php

$login_session =$row['username'];
$position = $row['position'];
$login_fname = $row['firstname'];
$login_lname = $row['lastname'];
$batchYr = $row['batchYr'];

$submittedBy = $login_fname.' '.$login_lname;
if(isset($login_session) and $position=='President'){
?>

            <form action="../pres/send_request_announcement.php" method="post" enctype="multipart/form-data">

                <label>Submitted by:</label>
                <input type="text" name="submittedBy" class="form-control" value="<?php echo $submittedBy;?>" disabled > <br/>

                <label>Batch Year:</label>
                <input type="text" name="batchYr" class="form-control" value="<?php echo $batchYr;?>" disabled><br/>

<input type="submit" name="submit" value="Request Announcement" style="float: right"/>

                </form>
<?php
}

?>

提交人:

首先,退出使用
mysql.*
这是一个不推荐使用的坏扩展,您不想习惯使用它

当谈到为什么不能保存到数据库中时:
您使用的是
mysql\u*
mysqli\u*
函数,它们不是同一个库,因此当您使用
mysqli
连接到数据库时,您将无法将其用于
mysql\u*
调用。
将所有的
mysql\u*
调用交换到适当的
mysqli\u*
调用,它应该会工作得更好


进一步。。。查看
mysqli
的php文档中关于
prepared语句的章节。它将帮助您防止sql注入,因为您目前很容易受到sql注入的攻击。

我能够找出问题所在。即使我有正确的查询,它也不会保存在数据库中的原因是因为在我的HTML格式中:

<input type="text" name="submittedBy" class="form-control" value="<?php echo $submittedBy;?>" disabled > <br/>
<input type="text" name="batchYr" class="form-control" value="<?php echo $batchYr;?>" disabled > <br/>

只读
也不可编辑。因此,当您想在数据库中保存数据而不需要用户编辑或输入内容时,只需使用
readOnly
,而不使用
disabled

您正在混合使用mysql和mysqliPlease,减少代码,只保留仍然包含此问题的部分。检查此项:如果这是原因,那么其他列如title、description也不应该保存,但它们保存在数据库中,只是不是由
提交的
batchYr
@Mihai
mysqli.*
不被弃用。但是PDO还是比较好的。对不起,那是个错误。当然应该是
mysql.*
。谢谢你指出这一点!:)甚至比mysqli_i更好的是使用PDO。帮助我学习PDO的一个很好的教程是。我同意,
PDO
在很多方面都更好,我也更喜欢,但在这种情况下,可能值得从
mysqli
开始,然后转向更面向对象的方式(使用mysqli或PDO)。我知道mysqli和PDO现在更好了,但我只是想解决这个问题。我不认为这是因为同时使用mysql_*和mysqli tho,因为除了
提交的
batchyr
@Jite之外,有些数据正在保存
<input type="text" name="submittedBy" class="form-control" value="<?php echo $submittedBy;?>" disabled > <br/>
<input type="text" name="batchYr" class="form-control" value="<?php echo $batchYr;?>" disabled > <br/>
<input type="text" name="submittedBy" class="form-control" value="<?php echo $submittedBy;?>" readOnly="readOnly">
<input type="text" name="batchYr" class="form-control" value="<?php echo $batchYr;?>" readOnly="readOnly">