我想這可能會是另一種簡單的錯誤我看過了大約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