2012-02-11 85 views
0
<?php 

require_once "includes/db_data_inc.php"; 

try 
{ 
    /* In this way I get a db connection handle */ 
    $DBH = new PDO("mysql:host=$db_host;port=8889;dbname=$db_name",$db_user,$db_pass); 

} 
catch (PDOException $pdoe) 
{ 
    error_log($pdoe->getMessage()); 
    die("Failed to connect to the database."); 
} 

$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$DBH->setAttribute(PDO::ATTR_AUTOCOMMIT,false); 

try 
{ 
    $success_msg = NULL; 
    $unsucess_msg = NULL; 

    $query = "INSERT INTO users (name,surname,address,birth_place,province,birthdate,sex,treatment) VALUES (?)"; 
    $SHT = $DBH->prepare($query); 

    $SHT->bindParam(1, $_POST['name']); 
    $SHT->bindParam(2, $_POST['surname']); 
    $SHT->bindParam(3, $_POST['address']); 
    $SHT->bindParam(4, $_POST['birth_place']); 
    $SHT->bindParam(5, $_POST['province']); 
    $SHT->bindParam(6, $_POST['dt']); 
    $SHT->bindParam(7, $_POST['gender']); 
    $SHT->bindParam(8, $_POST['select']); 

    $DBH->beginTransaction(); 

    if($SHT->execute()) 
    { 
     $DBH->commit(); 
     $success_msg = "The emergency call was correctly sent..."; 
    } 
    else 
    { 
     $unsucess_msg = "It couldn't estabilished a connection to call center..."; 
    } 
} 
catch(PDOException $pdoe) 
{ 
    $DBH->rollBack(); 
} 


/* Close the db connection */ 
$DBH = null; 

?>MySQL連接功能PDO

這裏是我的MySQL連接功能來連接到MySQL數據庫和插入查詢。代碼不起作用。有可能是一些錯誤?因爲我沒有收到來自php控制檯的任何錯誤,但是我甚至沒有在page.any中看到任何結果?

我工作的控制檯上並獲得了這個錯誤:

Invalid parameter number: number of bound variables does not match number of tokens 

這是什麼意思?

+0

使用像'的var_dump($ PDOE);'得到例外。不知何故,只是回滾交易,完全忽略了實際的錯誤... – CodeZombie 2012-02-11 00:52:35

回答

0

One'?'只是與您稍後傳遞的八個參數不匹配。

看看PDOStatement::bindParam方法的例子。

使用類似:

$query = "INSERT INTO users (name,surname,address,birth_place,province,birthdate,sex,treatment) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; 
+0

因此,我已經把八'?'一致...? – 2012-02-11 00:59:39

+0

或者我可以創建如下所示的佔位符:bindParam(':name',$ _POST ['name'])和替換:名稱爲'?'。對? – 2012-02-11 01:02:14

+0

@eng_mazzy:看看我的鏈接中的例子,應該回答你所有的問題。 – CodeZombie 2012-02-11 01:03:39