2011-11-24 59 views
-1

我想这可能会是另一种简单的错误我看过了大约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 
} 

另外,在表settingsvalue柱没有给出任何值,而$language确实有一个值。

+0

您是否尝试过你的$查询 - 之后提交>的execute() – Stainedart

+1

您应该打印'$查询 - > errorInfo中()' – soju

+0

@CarlT。 ...承诺?那是什么,它是如何完成的? – RobinJ

回答

0

这只是一个错字,像往常一样>。 <
这是一个我在的形式,它获得了拼写错误的,从POST数据既不的你可以找到。

+0

形式在哪里? – ajreal

+0

在页面上。不包括在我发布的代码块中。 – RobinJ