mysql_ *을 PDO로 변환하려하지만이를 수행 할 수 없습니다. 계속 "SQLSTATE [HY093] : 바인딩 된 변수 수가" 오류의 토큰 수와 일치하지 않습니다. 그러나 이것을 묻기 전에 또 다른 조언을 구하라.참여 방법 메소드와 바운드 변수의 수가 일치하지 않습니다. 오류
나는 학생 수 : LESSONBOUGHT AND ACCOUNT 내 INNODB 내에 studentsons와 lessonsbought_id 및 account_id를 연결했다. 또한 students_id 열 에 "lessonsbought" 및 "accounts" 테이블도있었습니다. 그리고 나의 오래된 mysql_로에 * 나는 왼쪽을 사용하던 코드는 을 가진 후 ..이 일반적인 "students_id" 행을 기반으로 지금
그러나이 결과를 보여주기 위해 가입 "SQLSTATE는 [HY093] : 바운드 변수의 수는 일치하지 않습니다 나는이 같은 결과를 보여 외래 키에 연결하려고 " 오류 토큰 번호 :
foreach($db->query("SELECT * FROM students s1 LEFT JOIN lessonsbought l1 ON s1.students_id = l1.lessonsbought_id LEFT JOIN account a1 ON s1.students_id = a1.account_id")as $row)
이전 버전은했다 : 첫째
foreach($db->query("SELECT * FROM students s1 LEFT JOIN lessonsbought l1 ON s1.students_id = l1.students_id LEFT JOIN account a1 ON s1.students_id = a1.students_id")as $row)
, 어느 쪽이 더 나은 무엇입니까?
두 번째 질문 : 삽입 데이터 페이지에 삽입 코드를 어떻게 형성합니까?
편집 사전에
<?php
if(isset($_POST['send']))
{
try{
$db = new PDO ('mysql:host=localhost;dbname=MY-DB-NAME;charset=utf8','MY-DB-USERNAME','MY-DB-PASSWORD');
}
catch(PDOException $exc)
{echo 'Failed while insert operation'. $exc->getMessage();
exit();
}
$students_name = $_POST['students_name'];
$students_phone = $_POST['students_phone'];
$students_email = $_POST['students_email'];
$students_status = $_POST['students_status'];
$students_first_level = $_POST['students_first_level'];
$students_reg_date = $_POST['students_reg_date'];
$lessonsbought_lesson_type = $_POST['lessonsbought_lesson_type'];
$lessonsbought_total_hours = $_POST['lessonsbought_total_hours'];
$account_all_cost = $_POST['account_all_cost'];
$payment_method = $_POST['payment_method'];
$discount = $_POST['discount'];
$payment_done = $_POST['payment_done'];
$payment_waiting = $_POST['payment_waiting'];
$pdoQuery ="INSERT INTO students(students_name,students_phone,students_email,students_status,students_first_level,students_reg_date) VALUES (:students_name,:students_phone,:students_email,:students_status,:students_first_level,:students_reg_date)";
$last_id = $db->lastInsertId();
$pdoQuery ="INSERT INTO lessonsbought(lessonsbought_lesson_type,lessonsbought_total_hours,students_id) VALUES (:lessonsbought_lesson_type,:lessonsbought_total_hours,:last_id)";
$pdoQuery ="INSERT INTO account(account_all_cost,payment_method,discount,payment_done,payment_waiting,students_id) VALUES (:account_all_cost,:payment_method,:discount,:payment_done,:payment_waiting,:last_id)";
$pdoResult = $db->prepare($pdoQuery);
$pdoExec = $pdoResult->execute(array(":students_name"=>$students_name,":students_phone"=>$students_phone,":students_email"=>$students_email,":students_status"=>$students_status,":students_first_level"=>$students_first_level,":students_reg_date"=>$students_reg_date,
":lessonsbought_lesson_type"=>$lessonsbought_lesson_type,":lessonsbought_total_hours"=>$lessonsbought_total_hours,":students_id"=>$last_id,
":account_all_cost"=>$account_all_cost,":payment_method"=>$payment_method,":discount"=>$discount,":payment_done"=>$payment_done,":payment_waiting"=>$payment_waiting,":students_id"=>$last_id));
if($pdoExec)
{
echo 'Success! Data Insert Done';
}else{
echo 'Failed While Data Insert Operation';
}
}
?>
감사합니다 (이 예제는 mysql_로 * 버전에서 변환을 시도했다) : 테이블 이름 "muhasebe"에서 업데이트 첫 번째 질문은 "계정"