php - 表单未发布到 MySQL 数据库

标签 php mysql

我正在尝试将数据从文本字段发送到我的数据库。当我运行代码时,我没有收到任何错误。但代码并未将数据发布到数据库。我看不出哪里出了问题,有人可以看看哪里出了问题吗?

index.php

<?php 
session_start(); 
?>
<html>
<form name="reaction" method="post" action="./send/send1.php">
<input type="text" class="form-control" id="data_1" name="data_1" placeholder="Data 1" />

<button name="send">Send</button>
</form>
</html>

发送1.php

<?php 
session_start(); 

?>
<html>
<body>
<table>
<?php
$correct = true;

$data_1 = $_POST['data_1'] ;

?>
</table>
<?php
if($correct){
    $db = new PDO('mysql:host=localhost;dbname=database', 'root', '');
    $query = "UPDATE table SET data_1=" . $data_1 . " WHERE id='" . $_SESSION['ID'] ."'";
$stmt = $db->prepare($query);
$stmt->execute(array($adres_1));

    echo "<br /><br />Success.<br />\n";
} else {

    echo "<br /><br />Error.<br />\n";
}
?>
</body>
</html>

最佳答案

a) 您的脚本需要更多错误处理。
在访问 $_POST['data_1'] 之前,您应该测试它的存在,例如通过 isset()
您的数据库代码也没有任何错误处理。要么 set the error mode to PDO::ERRMODE_EXCEPTION 或(/和)确保测试 PDO::* 方法的每个返回值。

$db = new PDO('mysql:host=localhost;dbname=database', 'root', '');
$query = "UPDATE table SET data_1=" . $data_1 . " WHERE id='" . $_SESSION['ID'] ."'";
$stmt = $db->prepare($query);
if ( !$stmt ) {
    yourErrorHandler('could not prepare statement', $db->error);
}
else if ( !$stmt->execute(array($adres_1)) ) {
    yourErrorHandler('could execute statement', $stmt->error);
}
else if ( 1>$stmt->rowCount() ) {
    // no record has been updates
}
else {
    // at least one record has been updated
}

b) $stmt->execute(array($adres_1)); 什么是 $adres_1?它不在该代码的其他任何地方。
c) 你的代码很容易出现sql injections 。你可以解决这个问题,例如通过使用 prepared statements + parameters

整个代码看起来像是其他脚本的一小部分已被复制和粘贴,但不了解这些片段的作用。

关于php - 表单未发布到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35743554/

相关文章:

phpunit安装错误: Cannot use PHPUnit\Framework\MockObject\Stub as Stub

php - 如何在laravel中获取嵌套数据

php - 从MySQL服务器检索一定时间间隔内的数据

java - 如何在SQL中检索一组表数据?

mysql - 问题概念化查询

php - 在 php while 循环中从 MySQL 结果打印新的 <div> 的 id 迭代更改

php - 注册页面上的操作 ="???"应该是什么?

php - 在 php 中只运行一次代码

php - 类似于Django的runserver的PHP本地测试服务器

php - 如何检查一个数组元素是否完全存在于php中的另一个数组中