插入数据库时​​出现问题

时间:2010-05-01 21:43:37

标签: php mysql stored-procedures mysqli

我有一个存储过程:

CREATE PROCEDURE busi_reg 
    (IN instruc VARCHAR(10), 
     IN tble VARCHAR(20), 
     IN busName VARCHAR(50), IN busCateg VARCHAR(100), 
     IN busType VARCHAR(50), 
     IN phne VARCHAR(20), IN addrs VARCHAR(200), IN cty VARCHAR(50), 
     IN prvnce VARCHAR(50), IN pstCde VARCHAR(10), IN nm VARCHAR(20), 
     IN surname VARCHAR(20), IN eml VARCHAR(50), IN pswd VARCHAR(20), 
     IN srce VARCHAR(50), IN refr VARCHAR(50), IN sess VARCHAR(50))

BEGIN

INSERT INTO b_register SET

       business_name = busName,
       business_category = busCateg,
       business_type = busType,
       phone = phne,
       address = addrs,
       city = cty,
       province = prvnce,
       postal_code = pstCde,
       firstname = nm,
       lastname = surname,
       email = eml,
       password = pswd,
       source = srce,
       ref_no = refr;

END;

这是我的php脚本:

$busName = $_POST['bus_name'];    
$busCateg = $_POST['bus_cat'];
$busType = $_POST['bus_type'];    
$phne = $_POST['phone'];
$addrs = $_POST['address'];    
$cty = $_POST['city'];    
$prvnce = $_POST['province'];    
$pstCde = $_POST['postCode'];    
$nm = $_POST['name'];    
$surname = $_POST['lname'];    
$eml = $_POST['email'];    
$srce = $_POST['source'];    
$ref = $_POST['ref_no'];

$result2 = $db->query("CALL busi_reg('$instruc', '$tble', '$busName', 
    '$busCateg', '$busType', '$phne', '$addrs', '$cty', '$prvnce', 
    '$pstCde', '$nm', '$surname', '$eml', '$pswd', '$srce', '$refr', '')");

if($result)
{
    echo "Data has been saved";
}
else
{
    printf("Error: %s\n",$db->error);
}

现在出现错误:

**Commands out of sync; you can't run this command now**

1 个答案:

答案 0 :(得分:0)

我认为因为这是标记的MySQLi,你正在使用它。

您使用的是MYSQLI_USE_RESULT吗?快速谷歌搜索错误很快就让我:http://php.net/manual/en/mysqli.query.php

如果这是问题,您需要在执行新结果之前释放上一个结果。