2011-11-24 57 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