2014-01-21 2 views
0
MySQL의 문을 처음

잘 보인다되지만 실행되지 않습니다 :업데이트 문이 하나 개의 MySQL의 쿼리에서 두 개의 문을 래핑하는 방법도 작동하지

진술 :

$sql = "UPDATE ('bands') SET ('Stock' = 'Stock' - 1) WHERE ('Band_id' = '$Band_id')"; 

또한 내가이 문을 실행하려면 함께이 하나

$sql = "INSERT INTO orders (band_id,user_id,user_name,band_name,band_venue) VALUES('$band_id', '$user_id', '$user_name', '$name', '$venue')"; 

나는 거래에서 그것을 할 필요가 알고 있지만 필자는 구글과이 작업을 수행하는 방법을 이해하지 않습니다.

전체 코드

<?php 
require 'core/init.php'; 
$user = new User(); 

$Band_id = mysql_real_escape_string($_GET['id']); 
$band_id = mysql_real_escape_string($_POST['band']); 
$name = mysql_real_escape_string($_POST['bandname']); 
$venue = mysql_real_escape_string($_POST['bandvenue']); 
$user_id = escape($user->data()->id); 
$user_name = escape($user->data()->username); 



$sql = "INSERT INTO orders (band_id,user_id,user_name,band_name,band_venue) VALUES('$band_id', '$user_id', '$user_name', '$name', '$venue')"; 
//$sql = "UPDATE ('bands') SET ('Stock' = 'Stock' - 1) WHERE ('Band_id' = '$Band_id')"; 

mysql_query ($sql, $linkme) 
    or die ("could not add to database"); 
?> 
+0

'band_id'가 문자열이 아닌 정수인지 궁금합니다. 그렇다면 값을 따옴표로 묶지 마십시오. –

+0

Il 더 많은 코드로 질문 업데이트 – Beep

+0

식별자 (필드 이름, 테이블 이름)를 작은 따옴표로 묶으면 문자열이 만들어집니다. 그러지 마. 대부분의 경우 식별자는 식별자를 둘러 쌀 필요가 없으며 특정 경우에는 식별자 주위에 표준 큰 따옴표 또는 mysql 특정 백틱을 사용할 수 있습니다. – fvu

답변

0

변경 당신이 (당신은 아마이어야 함) PDO를 사용하는 경우

'UPDATE `bands` SET `Stock` = (`Stock` - 1) WHERE `Band_id` = ' . $Band_id . ')'; 

에, 이것은 당신이 필요로하는 무엇을 :

$dsn = 'mysql:dbname=testdb;host=127.0.0.1'; 
$user = 'dbuser'; 
$password = 'dbpass'; 

$dbh = new PDO($dsn, $user, $password); 

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$dbh->beginTransaction(); 
$dbh->exec('UPDATE `bands` SET `Stock` = (`Stock` - 1) WHERE `Band_id` = ' . $Band_id . ')'); 
$dbh->exec('INSERT INTO `orders` (`band_id`, `user_id`, `user_name`, `band_name`, `band_venue`) VALUES("'.$band_id.'", "'.$user_id.'", "'.$user_name.'", "'.$name.'", "'.$venue.'")'); 
$dbh->commit(); 

을 사용하여 더 향상시킬 수 있습니다. 0

+0

고맙습니다. 그렇지만 pdo로 작성한 것처럼 사용하면 어떻게 변수를 호출 할 수 있습니까? – Beep

+0

어떤 변수에 문제가 있습니까? – thelastshadow

+0

복용량 문제가되지 않습니다 ive mysql에서 방아쇠를 사용하고 조언과 도움을 주셔서 감사합니다 – Beep