breedish
Новичок
Ошибка вызова хранимой процедуры
1.Есть след. 2 процедуры:
2. Есть класс для работы с бд
3. Есть след. код index.php
Вызов любой из процедур всегда возвращает false(mysql_query("CALL freecontact();", $this->db)
????
В чем тут дело подскажите.
MySQL 5.018, zend_studio5.5(PHP 5.2)
причем с mysqli тоже самое((((
Да вот что пишет mysql_error : PROCEDURE test2.freecontact can't return a result set in the given context
чета не пойму!!! из mysql все ок а из пхп фигня)
хелп пипЛ!
1.Есть след. 2 процедуры:
PHP:
DELIMITER $$
DROP PROCEDURE IF EXISTS `test2`.`freecontact` $$
CREATE PROCEDURE `test2`.`freecontact` ()
BEGIN
DECLARE con_id INT DEFAULT 0;
SET AUTOCOMMIT=0;
SELECT id INTO con_id FROM contacts WHERE con_status IN (0,2,3,4) AND in_action='0' LIMIT 1;
UPDATE contacts SET in_action = '1' WHERE id = con_id;
SELECT * FROM contacts WHERE id= con_id;
COMMIT;
SET AUTOCOMMIT=1;
END $$
DROP PROCEDURE IF EXISTS `test2`.`savecontact` $$
CREATE PROCEDURE `test2`.`savecontact` (IN stat INT, IN con_id INT)
BEGIN
SET AUTOCOMMIT=0;
UPDATE contacts SET in_action = '0', con_status = stat WHERE id = con_id;
COMMIT;
SET AUTOCOMMIT=1;
END $$
DELIMITER ;
PHP:
<?php
class Contacts
{
private $db = null;
private $cfg = null;
function Contacts()
{
$this->db = mysql_connect("localhost", "root", "123456");
mysql_select_db("test2", $this->db);
}
function doAction()
{
for($i=0; $i<10000; $i++);
return true;
}
function getContact()
{
$con_res = mysql_query("CALL freecontact();", $this->db);
if($con_res)
{
if(mysql_num_rows($con_res)==1)
{
return $contact = mysql_fetch_assoc($con_res);
}
}
return false;
}
function saveContact($id)
{
$con_res = mysql_query("CALL savecontact({$id});");
if($con_res)
{
return true;
}
return false;
}
}
?>
PHP:
<?php
require_once("Contacts.class.php");
$oper = new Contacts();
$available_actions = array('save', 'get');
$action = (isset($_REGUEST['action']) && in_array($_REQUEST['action'],$available_actions))?$_REQUEST['action']:'get';
if(isset($_REQUEST['id']))
{
switch($action)
{
case 'save':
$oper->saveContact($_REQUEST['id']);
break;
}
}
echo $oper->getContact();

В чем тут дело подскажите.
MySQL 5.018, zend_studio5.5(PHP 5.2)
причем с mysqli тоже самое((((
Да вот что пишет mysql_error : PROCEDURE test2.freecontact can't return a result set in the given context
чета не пойму!!! из mysql все ок а из пхп фигня)
хелп пипЛ!