2011-05-12 5 views
1

PHP와 MySQL을 사용하여 트랜잭션을 수행하고 있습니다. PHPMyAdmin 사용하기 대학 데이터베이스에 쿼리를 삽입합니다. 일부 테이블에서 트랜잭션을 사용해야합니다. 지금까지 직원 트랜잭션을위한이 코드를 만들었지 만 문제는이 코드에 대한 쿼리로 사용할 수 있도록 addStaff.php에 정보를 삽입하는 방법입니다. 바로 당신을 위해 무엇을 찾고있는 사람이 어쩌면이다 //values();PHP/MySQL 트랜잭션

<?php 
function begin() 
{ 
    mysql_query("BEGIN"); 
} 
function commit() 
{ 
    mysql_query("COMMIT"); 
} 
function rollback() 
{ 
    mysql_query("ROLLBACK"); 
} 

mysql_connect("localhost","username", "password") or die(mysql_error()); 
mysql_select_db("test") or die(mysql_error()); 
$query = "INSERT INTO Staff (id,name,position,phone,email,roomNumber,dnumber)" 
//values(); 

begin(); // BEGIN 
$result = mysql_query($query); 
if(!$result) 
{ 
    rollback(); // ROLLBACK 
    echo "You rolled back"; 
    exit; 
} 
else 
{ 
    commit(); // COMMIT 
    echo "Transaction was succesful"; 
} 
?> 
+1

코드 앞에 @가 붙는 것을 사용하지 마십시오. 오류 설명이 더 잘됩니다. 또한,'dnumber 다음에 닫는''을 놓친다 ' –

+0

알려 주셔서 감사합니다 –

+0

addStaff.php에 삽입 된 값은 무엇을 의미합니까? 제출 된 양식을 의미합니까? 그렇다면'$ _POST ['input_name ]'또는'$ _GET [ 'input_name']'폼의 메소드 속성에 따라 – Dormouse

답변

0

보안 다음을 표시하는 방법의 베어 본 버전의

<?php 
    if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

     ... connect to the database ... 

     $sometext = $_POST['textfield']; // retrieve the value from the form 

     $qsometext = mysql_real_escape_string($sometext); // make it safe for the query 

     $sql = "INSERT INTO mytable (textfield) VALUES ($qsometext);" // build the sql query 

     $result = mysql_query($sql) or die(mysql_error()); // run the query 

    } 
?> 

<html> 

<body> 
<form method="POST"> 
<input type="text" name="textfield"><input type="submit"> 
</form> 

</body> 

</html> 

양식을 작성한 다음 사용자의 데이터를 데이터베이스에 삽입하면 for 더 많은 데이터를 보려면 m을 클릭하십시오.

+0

작은 따옴표를 사용하면 안됩니다. '$ qsometext'를 중심으로? –

1

말한다 여기서

$new_row = mysql_insert_id(); 
$query = mysql_query("SELECT * FROM `Staff` WHERE `id`=".$new_row); 
$r = mysql_fetch_assoc($query); 

echo $r['name']; 

가 삽입 된 행 이름을 에코합니다.

편집 : 이것은 당신이 SQL 주입에 문 준비/이스케이프 사용자 입력, XSS 공격과의 많은 중요한 부분을 읽을 필요가 생산 아무것도를 이동하기 전에, 일을하는 방법에 대한 아주 아주 기본 버전입니다 SQL 쿼리 당신이 올바른 질문을 이해한다면, 당신은 데이터에 대한 프롬프트를 적용하고 데이터베이스에 삽입하는 방법을 알아야

+0

출력 결과를 HTML 페이지에 올바르게 인코딩하려면 'htmlspecialchars'를 사용해야한다는 점에 유의하십시오. (XSS를 방지하기 위해) –

+1

OP에 대해 알고 있어야하는 많은 많은 것들이 있다고 생각합니다. – Dormouse

+0

좋은 추가 사항 : 보안은 처음부터 건물의 일부가되어야하며 나중에 고려해야합니다. –

관련 문제