我通过phpmyadmin将数据插入到我的表中。它向我展示了它使用的查询,因此我将其复制并粘贴到我的PHP代码中。
我的Php代码假设是提交表单而我正在尝试将$ _POST('name')放入查询中。当我运行代码时,它会填充所有内容,但 version_name 名称所在的字段。
有趣的是我使用相同的MYSQL查询,在phpmyadmin上正确插入它。
我已经开始尝试一个随机名称而不是POST,看看它是否提交,但我一直空白......有什么建议吗?
$sql = "INSERT INTO `Prototype`.`Version` ('version_id', `version_name`, `version_status`, `created_date`, `created_by`) VALUES ('','A', 'A', CURRENT_TIMESTAMP, NULL);";
这是插入部分,我也尝试删除version_id,因为它是自动修改但没有帮助。
第一行是从我的php提交时的结果。第二行是我从phpmyadmin直接插入的。
任何帮助从我的php提交version_name都会很棒!
编辑----
继承我的PHP代码
<?php
// Retrieve form data
$name = $_POST['name'];
if (!$name) {
echo "save_failed";
return;
}
$db = array(
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'Prototype',
);
$link = @mysql_connect($db['host'], $db['login'], $db['password']);
if (!$link) {
echo "save_failed";
return;
}
mysql_select_db($db['database']);
// Clean variables before performing insert
$clean_name = mysql_real_escape_string($name);
// Perform insert
$sql = "INSERT INTO `Prototype`.`Version` (`version_name`, `version_status`, `created_date`, `created_by`) VALUES ( 'A', 'A', CURRENT_TIMESTAMP, NULL);";
if (@mysql_query($sql, $link)) {
echo "success";
@mysql_close($link);
return;
} else {
echo "save_failed";
@mysql_close($link);
return;
}
?>
答案 0 :(得分:0)
第一件事$_POST('name');
首先$_POST['name'];
是正确的$sql = "INSERT INTO `Prototype`.`Version` (`version_name`, `version_status`, `created_date`, `created_by`) VALUES ('A', 'A', CURRENT_TIMESTAMP, NULL)";
。现在使用以下查询回答您的问题。
CREATE TABLE `proto` ( `version_id` int(3) NOT NULL AUTO_INCREMENT, `version_name` varchar(45) NOT NULL, `version_status` varchar(45) NOT NULL, `created_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `created_by` varchar(45) DEFAULT NULL, PRIMARY KEY (`version_id`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
我也在我自己的桌子上检查过你自己提供的结构。 它的查询如下。
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
$db = new PDO("mysql:host=".HOST.";dbname=".DBNAME.";charset=utf8", USERNAME, PASSWORD, $options);
$query = $db->prepare("INSERT INTO `Prototype`.`Version`
(`version_name`,
`version_status`,
`created_date`,
`created_by`)
VALUES
('A',
'A',
CURRENT_TIMESTAMP,
NULL)");
$result = $query->execute();
return $result ? true : false;
下面的代码是您通过php提交的。
{{1}}
答案 1 :(得分:0)
这很多都是由你的问题解决,而不是你的问题的答案,但在Mysql 4中这可行:
自动增量值可以是
从Mysql 5开始,最后一个不起作用。
这是Mysql 4的一个未记录的功能,已删除Mysql 5。
答案 2 :(得分:0)
服务器出错了。我删除了数据库,从头开始,它解决了这个问题。几乎可以卸载并重新安装xampp。