2012-11-29 48 views
0

我有一個代碼,我已經嘗試的問題,在數據庫中插入,存儲過程正常工作:未能插入存儲過程記錄在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(它的工作原理)

呼叫新品推薦( 'TENIS', '老兄', '耐克', 'ACG90', '黑人',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

變化

$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()在可變

+0

價值逃逸'"非常感謝你的朋友,我只是改變的代碼行,和它的工作原理精細。但你能給我一個例子解釋mysqli_real_escape_string(),請 – samaniego

+0

請再多提一個問題,是用存儲過程插入數據的正確方法,你推薦的任何書嗎? (如果O'Reilly或Wrox更好),要實現它與jquery需要改變一些東西,再次感謝 – samaniego

+0

如果'$ categoria =「Cat's Parry」',然後打破你的SP調用像'CALL newProduct('$ tipo',' Cat's Parry','$ marca','$ modelo','$ color','$ talla','$ corte','$ cveprecio','$ precio','$ sugp')' – GBD

相關問題