2013-06-19 2 views
-1

Вот что я имею в верхней части страницы, собирая информацию из таблиц в базе данных:информации не введена в базу данных

include_once '../assets/database.php'; 
$a = $_GET['a']; 
$username = $_SESSION['username']; 
$user_q = $db->prepare("SELECT * FROM `users` WHERE `username` = '$username'"); 
$user_q->execute(); 
$user_i = $user_q->fetch(); 

$aboutQ = $db->prepare("SELECT * FROM `info` WHERE uid = :id"); 
$aboutQ->execute(array(':id' => $user_i['id'])); 
$about = $aboutQ->fetch(); 

$about_ex = $db->prepare("SELECT * FROM `info` WHERE uid = :uid"); 
$about_ex->execute(array(':uid' => $user_i['id'])); 
$aboutRow = $about_ex->rowCount(); 

и нижних запросах, создание новой строки или обновлении существующего один, в зависимости от того, имеет ли пользователь строку в уже таблице:

if($a === "post") { 
$motto = $_POST['motto']; 
$bio = stripslashes($_POST['bio']); 
$grade = $_POST['grade']; 
$sex = $_POST['sex']; 
$phone = $_POST['phone']; 
$aboutUid = $_POST['uid']; 
if($aboutRow == 0) { 
$q = $db->prepare("INSERT INTO `info` (motto, bio, grade, sex, favevent, position, phone, hours, uid) VALUES (:motto, :bio, :grade, :sex, null, null, :phone, null, :uid)"); 
$q->bindParam(':motto', $motto); 
$q->bindParam(':bio', $bio); 
$q->bindParam(':grade', $grade); 
$q->bindParam(':sex', $sex); 
$q->bindParam(':phone', $phone); 
$q->bindParam(':uid', $aboutUid); 
$q->execute(); 
} 
else { 
$q = $db->prepare("UPDATE `info` SET motto=?, bio=?, grade=?, sex=?, favevent=?, position=?, phone=? hours=? WHERE uid=?"); 
$q->execute(array($motto,$bio,$grade,$sex,null,null,$phone,null,$aboutUid)); 
} 
header("Location: ../members"); 
exit; 
} 

Это не дает мне ошибку - но каждый раз, когда я исполню ее ничего не происходит.

+0

Зачем ему сообщать об ошибке? Проверьте с помощью '' mysqli_error() '] (http://php.net/mysqli-error) и [' mysqli_errno() '] (http://php.net/mysqli-errno) после выполнения запроса. – BlitZ

+0

Где ваша ошибка/значение проверяется на этих начальных значениях SELECT? –

+1

@CORRUPT - это больше похоже на PDO для меня; в этом случае это '$ db-> ErrorInfo()' и '$ q-> ErrorInfo()' – andrewsi

ответ

1

Да, вы получили SQL синтаксических ошибок:

$q = $db->prepare("UPDATE ... position=?, phone=? hours=? WHERE uid=?"); 
               ^-- missing comma 

, так как вы говорите, никаких ошибок не показывает, что вы, вероятно, не работает с поддержкой исключений, так что вы абсолютно MUST значений Проверка возврата из БД вызывает и проверяет наличие логического ложного значения.

Смежные вопросы