首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我插入数据时,它在数据库中显示'1‘

当我插入数据时,它在数据库中显示'1‘
EN

Stack Overflow用户
提问于 2015-12-24 07:12:19
回答 2查看 82关注 0票数 2

我有个奇怪的问题。我在学习准备好的陈述。我创建了一个带有一个字段nama的简单页面和一个带有列nama的表。我只想看到数据输入。当我按submit按钮时,表中有数据,但是每次我插入数据时它都会显示1。所有的行都显示相同的图形。有人能指引我渡过难关吗?

代码语言:javascript
复制
<?php

/**
 * Start the session.
 */
session_start();

require 'connect-test.php';

$nama= isset($_POST['nama']);

$stmt=$conn->prepare("INSERT INTO test (nama) VALUES (?)");
$stmt->bind_param("s", $nama);
$stmt->execute();
if (!$stmt)
{ printf("Errormessage: %s\n", $mysqli->error);}    

$stmt->close();
$conn->close();

?> 

<html>
<body>  
<form name="form2" method="post" action="test-deletenanti.php">
  <p>Name :
    <input type="text" name="nama" id="nama">
  </p>
  <p>
    <input type="submit" name="button" id="button" value="Submit">
  </p>  
</form>       
</body>
</html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-24 07:14:37

变化

代码语言:javascript
复制
$nama = isset($_POST['nama']);

至:

代码语言:javascript
复制
$nama = $_POST['nama'];

isset根据变量是否设置返回truefalse,所以这就是您要放入$nama的内容,而不是输入的实际值。

在整个过程中,您应该在isset()语句中使用if

代码语言:javascript
复制
if (isset($_POST['nama'])) {
    $nama = $_POST['nama'];

    // rest of code to insert into DB
}
票数 5
EN

Stack Overflow用户

发布于 2015-12-24 07:15:28

isset()

如果var存在并具有NULL以外的值,则返回TRUE,否则返回FALSE。

您的条件为真,并将其设置为1。

代码语言:javascript
复制
$nama= isset($_POST['nama']);

只要换到

代码语言:javascript
复制
if (isset($_POST['nama'])) {
    $nama = $_POST['nama'];

        $stmt = $conn->prepare("INSERT INTO test (nama) VALUES (?)");
        $stmt->bind_param("s", $nama);
        $stmt->execute();
        if (!$stmt) {
            printf("Errormessage: %s\n", $mysqli->error);
        }
        $stmt->close();
        $conn->close();
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34448779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档