I guess it'll probably be another simple mistake I've looked over about 20 times without noticing it, but my data is not being inserted into my database somehow.
I'm doing 2 things in this query. I'm creating the table, and inserting some data into it. Somehow the table is being created, but the data is not inserted into it.
No error, nothing to indicate that something's gone wrong.
Query:
$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();
Bigger chunk of code:
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
}
Also, the value
column in the table settings
isn't given any value, while $language
does have a value.