2012-03-03 3 views
2

Надеюсь, я на правильном пути. У меня есть хранимая процедура, подготовленная для добавления информации о клиенте в мою базу данных:Сохраненные процедуры и формы PHP

DROP PROCEDURE `sp_add_customer`// 
CREATE DEFINER=`test`@`%` PROCEDURE `sp_add_customer`(IN in_name VARCHAR(100), in_address_line_1 VARCHAR(100), in_address_line_2 VARCHAR(100), in_address_line_3 VARCHAR(100), in_city VARCHAR(50), in_county VARCHAR(50), in_phone VARCHAR(30), in_mobile VARCHAR(30), in_email VARCHAR(100)) 
BEGIN 

    INSERT INTO customer(name, address_line_1, address_line_2, address_line_3, city, county, phone, mobile, email) 
    VALUES(in_name, in_address_line_1, in_address_line_2, in_address_line_3, in_city, in_county, in_phone, in_mobile, in_email); 

END 

Теперь я хотел бы использовать эту хранимую процедуру с формой HTML (аналогично приведенному ниже), чтобы добавить клиент к моему столику клиента.

<form id="htmlForm" action="add-customer.php" method="post" class="form-horizontal"> 
    <input type="text" class="input-large" placeholder="Customer Name"><br/> 
    <input type="text" class="input-large" placeholder="Phone"><br/> 
    <input type="text" class="input-large" placeholder="Mobile"><br/> 
    <input type="text" class="input-large" placeholder="Email"><br/> 
    <input type="text" class="input-large" placeholder="Address Line 1"><br/> 
    <input type="text" class="input-large" placeholder="Address Line 2"><br/> 
    <input type="text" class="input-large" placeholder="Address Line 3"><br/> 
    <input type="text" class="input-large" placeholder="City"><br/> 
    <input type="text" class="input-large" placeholder="County"><br/> 
    <button type="submit" class="btn">Add Stock</button> 
</form> 

Может кто-то пожалуйста, объясните мне PHP код, мне нужно, чтобы добавить детали из формы клиента в таблице клиента с помощью хранимой процедуры.

Файл надстройку customer.php содержит:

<?php 

    //MySQL Database Connect 
    require once ("includes/config.php") 

    $name = $_POST['name']; 
    $phone = $_POST['phone']; 
    $mobile = $_POST['mobile']; 
    $email = $_POST['email']; 
    $address1 = $_POST['address1']; 
    $address2 = $_POST['address2']; 
    $address3 = $_POST['address3']; 
    $city = $_POST['city']; 
    $county = $_POST['county']; 

    try{ 
     $dbh=config.php(); 
     $stmt = $dbh->prepare('CALL sp_add_customer(:in_name, :in_address_line_1, :in_address_line_2, :in_address_line_3, :in_city, :in_county, :in_phone, :in_mobile, :in_email)'); 
     $stmt->bindParam(':in_name',$name,PDO::PARAM_STR,45); 
     $stmt->bindParam(':in_address_line_1',$address1,PDO::PARAM_STR,45); 
     $stmt->bindParam(':in_address_line_2',$address2,PDO::PARAM_STR,45); 
     $stmt->bindParam(':in_address_line_3',$address3,PDO::PARAM_STR,45); 
     $stmt->bindParam(':in_city',$city,PDO::PARAM_STR,45); 
     $stmt->bindParam(':in_county',$county,PDO::PARAM_STR,45); 
     $stmt->bindParam(':in_phone',$phone,PDO::PARAM_STR,45); 
     $stmt->bindParam(':in_mobile',$mobile,PDO::PARAM_STR,45); 
     $stmt->bindParam(':in_email',$email,PDO::PARAM_STR,45); 
     $stmt->execute(); 
    } 
    catch (PDOException $e) { 
    print "Error!: " . $e->getMessage() . "<br/>"; 
    die(); 
} 
?> 

На данный момент я получаю следующее сообщение об ошибке: Синтаксическая ошибка: синтаксическая ошибка, неожиданный T_VARIABLE

высоко ценится.

+1

'$ DBh = config.php()' должен быть 'требовать ('config.php');'. Я предполагаю, что вы исходите с другого языка и не знаете, что вам нужны файлы, вы не можете называть их функциями. – Xeoncross

+0

Отлично, спасибо, что сделал трюк! –

ответ

0

Надеюсь, вы знаете, как отправлять значения с html-страницы на php-код.

php manual

<?php 
$stmt = $dbh->prepare("CALL sp_add_customer(?)"); 
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000); 

// call the stored procedure 
$stmt->execute(); 

print "procedure returned $return_value\n"; 
?> 

OK попробовать это http://www.joeyrivera.com/2009/using-mysql-stored-procedures-with-php-mysqlmysqlipdo/

+0

Hi @elrado, спасибо за ваш ответ. Я получаю следующую ошибку: Неустранимая ошибка: вызов функции-члена prepare() для не-объекта. Есть идеи? благодаря –