通过PHP调用MySQL存储过程

时间:2015-05-18 08:00:35

标签: php mysql stored-procedures xampp

我已经安装了XAMPP,并且一直在尝试使用PHP查询我的数据库,尽管我一直遇到同样的错误。

Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\amit\ShowAll.php on line 16
Query fail:

然而,这给我带来了以下错误:

@login_required
def lead(request):

    if request.method == 'POST':

        form = LeadForm(request.POST)
        if form.is_valid():
            lead_record = form.save(commit=False)
            lead_record.user = request.user
            lead_record.save()
            form.save_m2m()
            return redirect('leads:list')
    else:
        form = LeadForm()

    return render(request, 'leads/form.html', {'form': form})

3 个答案:

答案 0 :(得分:1)

Mysql_error要求传递数据库连接。请尝试以下:

{% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' control-label ' ~ block('form_label_class'))|trim}) %}

答案 1 :(得分:1)

谢谢,它最终成了你们所说的一切的组合:

<?php   

// Create connection
$conn = new mysqli('localhost', 'root', 'secret', 'edgeserver');

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

// Perform queries 
$result = mysqli_query($conn, 
    "call ShowAll") or die("Query fail: " . mysqli_error($conn));

  //loop the result set
while ($row = mysqli_fetch_array($result)){   
     echo $row[0] . " - " . + $row[1]; 
  }

$conn->close();

很好的回答,希望这将成为我开发一些优秀代码的基础。

答案 2 :(得分:0)

我认为问题来自use edgeserver; call ShowAll

use edgeserver,其中edgeserver是您要使用的数据库。 call ShowAll - 你试图用这个来完成什么?

你的新mysqli必须是这样的:

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

来源:http://php.net/manual/ro/mysqli.construct.php

在mysqli_query上,您必须执行“Select * from table”等查询。