2014-10-11 1 views
1

Я делаю код, который использует pdo для вставки информации в базу данных и получения защиты XSS. Теперь я несколько дней смотрю на код и не вижу проблемы, из-за которой код не вставляет требуемую информацию. Мой код Здесь `s:PHP, PDO, MySQLi функция dont вставить в базу данных

if ($register = $mysqli->prepare("INSERT INTO `accounts`(`id`, `username`, `email`, `password`, `salt`, `fullname`, `birthdate`, `gender`, `secure question`, `secure answer`, `asked`, `answered`, `lastlogin`) VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) { 
        $register->bind_param("ssssssddsdds", $username, $email, $password, $random_salt, $fullname, $birthdate, $gender, $question, $answer, $z, $z, $lastlogin); 
        // Execute the prepared query. 
        if (! $register->execute()) { 
         echo "אירעה שגיאה"; 
         $register->close(); 
        }else{ 
        echo 'אתם נרשמתם בהצלחה!. לחצו <a href="http://shaloti.com/users/login/">כאן</a>';} 
        $register->close(); 
       } 

И код соединения:

$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE); 

Спасибо.

+0

чека '$ mysqli-> error' –

+0

названия вашего вопроса содержит PDO и MySQLi. Надеюсь, вы не используете оба API. Кроме того, если ваш столбец 'id' равен AI, измените значение NULL на' '' 'и проверьте наличие ошибок. –

ответ

0

Используйте mysqli_affected_rows, чтобы получить число вставленной строки, если функция не удается, проверьте наличие ошибок с помощью mysqli_error

$sql = "INSERT INTO `accounts`(`id`, `username`, `email`, `password`, `salt`, `fullname`, `birthdate`, `gender`, `secure question`, `secure answer`, `asked`, `answered`, `lastlogin`) VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
if ($register = $mysqli->prepare($sql)) { 
    $register->bind_param("ssssssddsdds", $username, $email, $password, $random_salt, $fullname, $birthdate, $gender, $question, $answer, $z, $z, $lastlogin); 
    // Execute the prepared query. 
    if (!$register->execute()) { 
     echo "אירעה שגיאה"; 
     die("execute() failed: ". mysqli_error($mysqli)); 
    } 

    if(mysqli_affected_rows($register) > 0){ 
     echo 'אתם נרשמתם בהצלחה!. לחצו <a href="http://shaloti.com/users/login/">כאן</a>'; 
    }else{ 
     echo 'Did not inser any row'; 
    } 
}else{ 
    die("prepare() failed: ". mysqli_error($mysqli)); 
}