call mysql procedure from php
1 отговора
0 прегледа
call mysql procedure from php
Направо откачих с това...
Искам да изпълня процедура в mysql от php кода. Процедурата не връща стойности, само приема и ъпдейтва няколко таблици.
Имам просто скриптче -
...
$sql = "call insert_lookup('".$_POST['а']."','".$_POST['b']."','".$_POST['c']."','".$_POST['d']."')";
mysql_query($sql);
...
$_POST['а'], $_POST['b'], $_POST['c], $_POST['d'] са ОК - по-горе в кода ги използвам, имат си стойности.
Всъщност, $sql си е съвсем наред - стринга който се получава се изпълнява без проблеми от mysql промпт - прави каквототрябва. Ако обаче го извикам с mysql_query($sql);, не връща грешка, просто нищо не става. Процедурата е с DEFINER=`root`@`localhost` , връзката с базата е също като root (мислех да не е проблем с пермишъните).
Пропускам ли нещо? Мерси предварително!
Искам да изпълня процедура в mysql от php кода. Процедурата не връща стойности, само приема и ъпдейтва няколко таблици.
Имам просто скриптче -
...
$sql = "call insert_lookup('".$_POST['а']."','".$_POST['b']."','".$_POST['c']."','".$_POST['d']."')";
mysql_query($sql);
...
$_POST['а'], $_POST['b'], $_POST['c], $_POST['d'] са ОК - по-горе в кода ги използвам, имат си стойности.
Всъщност, $sql си е съвсем наред - стринга който се получава се изпълнява без проблеми от mysql промпт - прави каквототрябва. Ако обаче го извикам с mysql_query($sql);, не връща грешка, просто нищо не става. Процедурата е с DEFINER=`root`@`localhost` , връзката с базата е също като root (мислех да не е проблем с пермишъните).
Пропускам ли нещо? Мерси предварително!
Re: call mysql procedure from php
Решение е да се използва mysqli, не mysql
Това работи
<?php
$dbcon = mysqli_connect("localhost", "user", "pass", "db");
$sql="call my_proc('foo1','foo2','foo3','foo4')";
mysqli_query($dbcon, $sql);
?>
Това не работи
<?php
mysql_connect("localhost", "user", "pass");
mysql_select_db("db");
$sql="call my_proc('foo1','foo2','foo3','foo4')";
mysql_query($sql);
?>
Това работи
<?php
$dbcon = mysqli_connect("localhost", "user", "pass", "db");
$sql="call my_proc('foo1','foo2','foo3','foo4')";
mysqli_query($dbcon, $sql);
?>
Това не работи
<?php
mysql_connect("localhost", "user", "pass");
mysql_select_db("db");
$sql="call my_proc('foo1','foo2','foo3','foo4')";
mysql_query($sql);
?>