0

次のコードがあり、データベースに挿入する問題を実験しました。ストアドプロシージャは正しく機能します。

ストアドプロシージャは次のとおりです。

DELIMITER //
CREATE PROCEDURE newProduct

(   
IN tipo VARCHAR(10),
IN categoria VARCHAR(10),
IN marca VARCHAR(10),
IN modelo VARCHAR(10),
IN color VARCHAR(10),
IN talla DOUBLE,
IN corte VARCHAR(15),
IN cveprecio VARCHAR(20),
IN precio DECIMAL(7,2),
IN sugp DECIMAL(7,2)        
)
BEGIN
START TRANSACTION;

INSERT INTO tipos (tipo) VALUES (tipo);
INSERT INTO marcas (marca,modelo) VALUES (marca,modelo);
INSERT INTO colores (color) VALUES (color);
INSERT INTO tallas (talla) VALUES (talla);
INSERT INTO corte (corte) VALUES (corte);
INSERT INTO precios (cveprecio,precio,sugp) VALUES (cveprecio,precio,sugp);

COMMIT;
END//
DELIMITER ;

MYSQLでのストアドプロシージャの呼び出し(動作します)

newProduct('Tenis'、'Hombre'、'Nike'、'ACG90'、'Negro'、26.5、'Sintetico'、 '6p90'、690.50,750.50);を呼び出します。

DBに接続するためのPHPのコーディング

<?php//connect.php
$connect= mysqli_connect('localhost','root','xxxx','bancodedatos');
if (!$connect)
{
printf("Can't connect to MySQL Server.", mysqli_connect_error());
exit;
}
?>

ストアドプロシージャの挿入と呼び出しのコード

<?php//insert.php
include("../connect.php");
$tipo= isset($_POST['tipo']) ? $_POST['tipo'] : NULL;
$categoria= isset($_POST['categoria']) ? $_POST['categoria'] : NULL;
$marca= isset($_POST['marca']) ? $_POST['marca'] : NULL;
$modelo= isset($_POST['modelo']) ? $_POST['modelo'] : NULL;
$color= isset($_POST['color']) ? $_POST['color'] : NULL;
$talla= isset($_POST['talla']) ? $_POST['talla'] : NULL;
$corte= isset($_POST['corte']) ? $_POST['corte'] : NULL;
$cveprecio= isset($_POST['cveprecio']) ? $_POST['cveprecio'] : NULL;
$precio= isset($_POST['precio']) ? $_POST['precio'] : NULL;
$sugp= isset($_POST['sugp']) ? $_POST['sugp'] : NULL;
$createProduct=mysqli_query($connect,"CALL newProduct($tipo,$categoria,$marca,$modelo,$color,$talla,$corte,$cveprecio,$precio,$sugp)"); 

mysql_close ($connect);

?>

phpから呼び出すと、データベース、感謝、メキシコからの挨拶に挿入されません

4

1 に答える 1

1

変化する

$createProduct=mysqli_query($connect,"CALL newProduct($tipo,$categoria,$marca,$modelo,$color,$talla,$corte,$cveprecio,$precio,$sugp)");

$createProduct=mysqli_query($connect,"CALL newProduct('$tipo','$categoria','$marca','$modelo','$color','$talla','$corte','$cveprecio','$precio','$sugp')");

mysqli_real_escape_string()エスケープ'および"変数の値に使用

于 2012-11-29T09:12:48.467 に答える