我想这可能会是另一种简单的错误我看过了大约20倍没有注意到它,但我的数据没有被插入到我的数据库不知何故。表创建,但数据未插入
我在做这个查询两件事情。我正在创建表格,并在其中插入一些数据。不知怎的,表正在创建,但数据没有插入到它。
没有错误,没有任何迹象表明有什么地方出了问题。
查询:
$query = $dblink->prepare
(
"CREATE TABLE users
(
id int(6) NOT NULL auto_increment,
nick varchar(40) NOT NULL,
name varchar(120),
email varchar(256) NOT NULL,
pass varchar(256) NOT NULL,
salt binary(64) NOT NULL,
avatar varchar(0),
level int(1) NOT NULL,
primary key (id)
);"
. PHP_EOL .
"INSERT INTO users
(
nick,
name,
email,
pass,
salt,
avatar,
level
)
VALUES
(
:nick,
:name,
:email,
:pass,
:salt,
:avatar,
5
);"
);
$query->bindParam(':nick', $_POST['step3_nick']);
$query->bindParam(':name', $_POST['step3_name']);
$query->bindParam(':email', $_POST['step3_email']);
$salt = generateSalt();
$query->bindParam(':pass', hashPassword($_POST['step3_pass'], $salt));
$query->bindParam(':salt', $salt);
unset($salt);
$query->bindParam(':avatar', $img['logo']);
$query->execute();
更大块的代码:
elseif ($step == 4)
{
## Stap 4 ##
include_once('config.php');
try
{
$dblink = new PDO
(
'mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['name'],
$config['db']['user'],
$config['db']['pass']
);
$dblink->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (Exception $ex)
{
die
(
'<p style="color: red; font-weight: bold;">' . ($language == 'nl') ? ('Kon niet verbinden met de database!') : ("Couldn't connect to the database") . '</p>' . PHP_EOL .
'<p style="color: red;">' . $ex . '</p>'
);
}
if ($_POST['step3_pass'] !== $_POST['step3_pass_confirm'])
{
die
(
'<p style="color: red; font-weight: bold;">' . ($language == 'nl') ? ('De opgegeven wachtwoorden komen niet overeen!') : ("The given passwords don't match!") . '</p>'
);
}
$query = $dblink->prepare
(
"CREATE TABLE users
(
id int(6) NOT NULL auto_increment,
nick varchar(40) NOT NULL,
name varchar(120),
email varchar(256) NOT NULL,
pass varchar(256) NOT NULL,
salt binary(64) NOT NULL,
avatar varchar(0),
level int(1) NOT NULL,
primary key (id)
);"
. PHP_EOL .
"INSERT INTO users
(
nick,
name,
email,
pass,
salt,
avatar,
level
)
VALUES
(
:nick,
:name,
:email,
:pass,
:salt,
:avatar,
5
);"
);
$query->bindParam(':nick', $_POST['step3_nick']);
$query->bindParam(':name', $_POST['step3_name']);
$query->bindParam(':email', $_POST['step3_email']);
$salt = generateSalt();
$query->bindParam(':pass', hashPassword($_POST['step3_pass'], $salt));
$query->bindParam(':salt', $salt);
unset($salt);
$query->bindParam(':avatar', $img['logo']);
$query->execute();
echo ($language == 'nl') ? ('<strong>Installatie voltooid!</strong>') : ('<strong>Setup completed!</strong>');
?>
<form action="index.php" method="POST">
<input type="checkbox" name="step4_removesetupfile" /><?php echo ($language == 'nl') ? ('Verwijder <em>setup.php</em>.') : ('Remove <em>setup.php</em>.'); ?>
<input type="submit" value="»" />
</form>
<?php
}
另外,在表settings
的value
柱没有给出任何值,而$language
确实有一个值。
您是否尝试过你的$查询 - 之后提交>的execute() – Stainedart
您应该打印'$查询 - > errorInfo中()' – soju
@CarlT。 ...承诺?那是什么,它是如何完成的? – RobinJ