无法在php中插入带存储过程的记录

时间:2012-11-29 09:07:30

标签: php

我有下一个代码,我已经尝试在数据库中插入问题,存储过程正常工作:

商店程序为:

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);

用于连接数据库的代码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调用它不会插入数据库,谢谢,以及来自墨西哥的问候

1 个答案:

答案 0 :(得分: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()转换'"变量值