call mysql procedure from php

1 отговора 0 прегледа
#1

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 (мислех да не е проблем с пермишъните).

Пропускам ли нещо? Мерси предварително!

Отговор
в отговор на Tarta #2

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

Отговор