我有一个个人资料页面,我用现在已弃用的 php 代码编写了代码。切换到 PDO 并随我学习。我一直遇到这个问题,我的日期字段不会存储在数据库中。我找到了解决问题的方法(将mysql_real_escape_string添加到日期变量中)但是我被告知这不是 PDO。
我的代码对吗?这是格式化表单提交选项的安全有效方法吗?
//----------
//--My Submit Statement
//----------
<?php if (isset($_POST['submit'])) {
$user_id = ( $_POST["user_id"] );
$length = ( $_POST["length"] );
$ground = ( $_POST["ground"] );
$date = mysql_real_escape_string( $_POST["date"]);
$query = "INSERT INTO admin (user_id,`length`,`ground`,`date`) VALUES $user_id,$length,$ground,'".mysql_real_escape_string($date)."')";
$q = $pdo->prepare($query);
$q->execute(array('user_id'=>$user_id,':length'=>$length,':ground'=>$ground,':date'=>$date));
}
?>
日期由用户指定。
//----------
//--My Call Statement
//----------
<?php
$query = "SELECT * FROM admin WHERE user_id = '$userid'";
$q = $pdo->query($query);
while ($row = $q->fetch()){
?>
//Edited out beginning of table
<tr>
<td><?php echo $row['date']; ?> </td>
<td><?php echo $row['length']; ?><?php if ($selected == 'metric') { echo "cm"; } else { echo "in"; } ?>
</td>
<td><?php echo $row['ground']; ?><?php if ($selected == 'metric') { echo "cm"; } else { echo "in"; } ?>
//Edited out bottom of table