2
Hello dear stackoverflow users,

我有一个奇怪的问题。我有一个 2 页的表格。

第 1 页是 index.php:

<form action="insert.php" method="post">
<div class="slider"><input type="checkbox" onclick="this.form.checkbox1.checked = this.checked;" id="slider" name="10001" value="10001"><label for="slider"></label></div>  
<input type="checkbox" value="127.20" id="checkbox1" name="chk"/>
<input type="submit">
</form>

第 2 页是 insert.php

<?php
$q=$_GET["q"];
// Load Joomla! configuration file
require_once('configuration.php');
// Create a JConfig object
$config = new JConfig();
// Get the required codes from the configuration file
$server = $config->host;
$username   = $config->user;
$password   = $config->password;
$database = $config->db;

$con = mysqli_connect($server,$username,$password,$database);
if (!$con){
die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,$database);

$q = mysqli_real_escape_string($con,$q);

// Save form input
$10001 = $POST_['10001'];
$sql_add = "INSERT INTO cypg8_testtest (10001) VALUES ('$10001')";
$result_add = $mysqli->query($sql_add);

// Close connection
mysqli_close($con);
?>

数据库表调用:cypg8_testtest

该表有 2 列,设置如下:

编号 | 10001

其中 id 是一列, 10001 是一列。

我一直在网上寻找并尝试使用几种方法,包括:

但我不知道为什么他们都没有工作。我收到各种错误,例如意外 10001 或意外;

使用上面的代码,我得到以下错误:解析错误:语法错误,意外'10001'(T_LNUMBER),期望变量(T_VARIABLE)或'$'

我想将第一个复选框中的值(值 = 10001)保存到表列 10001

感谢您提前提供任何帮助。

编辑 1:<== 解决方案在这里。

需要更改代码和数据库才能使其正常工作。

在数据库中,表列名称需要以字母开头,因此从 10001 更改为 a10001

然后复选框名称也需要更改为 a10001 以使其与 db 表列对应。

保存表单输入也需要一些更改,这在代码中更容易看到。所以我把这两个代码放在下面以便于参考。

第 1 页是 index.php:

<form action="insert.php" method="post">
<div class="slider"><input type="checkbox" onclick="this.form.checkbox1.checked = this.checked;" id="slider" name="a10001" value="10001"><label for="slider"></label></div>  
<input type="checkbox" value="127.20" id="checkbox1" name="chk"/>
<input type="submit">
</form>

第 2 页是 insert.php

<?php
$q=$_GET["q"];
// Load Joomla! configuration file
require_once('configuration.php');
// Create a JConfig object
$config = new JConfig();
// Get the required codes from the configuration file
$server = $config->host;
$username   = $config->user;
$password   = $config->password;
$database = $config->db;

$con = mysqli_connect($server,$username,$password,$database);
if (!$con){
die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,$database);

$q = mysqli_real_escape_string($con,$q);

// Save form input
$a10001 = $_POST['a10001'];
mysqli_query($con,"INSERT INTO cypg8_testtest (a10001) VALUES ('".$a10001."')");

// Close connection
mysqli_close($con);
?>

感谢所有帮助我找到答案的人。特别感谢 Arian 提供的解决方案。

4

2 回答 2

2
 $10001 = $POST_['10001'];

首先, POST 不正确,应该是$_POST,你的下划线放错了地方。

其次,变量应始终以字符开头...尝试 $a10001 代替

第三,您必须将您的 SQL 字符串与您的变量连接起来。

尝试:

$a10001 = $_POST['10001'];
$sql_add = "INSERT INTO cypg8_testtest (`10001`) VALUES ('".$a10001."')";

最重要的:

http://dev.mysql.com/doc/refman/5.1/en/identifiers.html

列名不应仅由数字组成。

于 2013-08-21T22:27:35.113 回答
-1

尝试使用

`col_name`  

将您的表列名和表名括起来。那是键盘上波浪号(~)下的字符。mysql用法推荐。

于 2013-08-21T22:25:55.363 回答