如何使用PHP将字符串发布到MySQL数据库?

时间:2016-02-05 19:04:56

标签: php mysql

我正在尝试编写一个简单的应用程序,它允许我将一个简单的字符串发布到Mysql数据库。但是我收到了一个错误。我在这做错了什么?这是我的尝试:

[Run]
FileName: "{sys}\inetsrv\appcmd.exe"; Parameters: "set......"; Check: ShouldRun

[Code]

function ShouldRun: Boolean;
begin
  Result := (UserPage.Values[0] = 'NC');
end;

当我这样做时:

<?php
$servername = "xxxx.awardspace.net";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 


$sql = "INSERT INTO tokens (`token`) VALUES (". $_POST["token"].")";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

它返回:

  

错误:INSERT INTO令牌(curl -i -X POST \ -H "Content-Type:text/plain" \ -d \ 'token=NEVERLUCKY' \ 'http://myurl.mygamesonline.org/?token=testString123' )VALUES()
列数与第1行的值计数不匹配

我的MYSQL表有一个名为token的列,其类型为VARCHAR(200)

2 个答案:

答案 0 :(得分:1)

在尝试运行查询之前添加基本检查,并确保正确引用该值:

if(isset($_POST['token'])) {

    $token = $_POST['token'];
    $sql = "INSERT INTO tokens (`token`) VALUES ('$token')"; // no need to concatenate and make sure the quotes are correct

    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
}

答案 1 :(得分:0)

只需制作类似$token=$_POST['token'];的内容,然后将其插入:

$sql = "INSERT INTO tokens (`token`) VALUES ('$token')";