Хранимые процедуры и формы PHP - PullRequest
1 голос
/ 03 марта 2012

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

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-код, который мне нужен, чтобы добавить детали из формы клиента в таблицу клиентов с помощью хранимой процедуры.

add-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 Ответ

0 голосов
/ 03 марта 2012

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

Руководство по php

<?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";
?>

ОК, попробуйте http://www.joeyrivera.com/2009/using-mysql-stored-procedures-with-php-mysqlmysqlipdo/

...