【问题标题】:Procedure doesn't do anything程序不做任何事情
【发布时间】:2017-05-04 05:24:45
【问题描述】:

我在mySql中做了一个程序。看起来像这样。

我从 php 调用了这个过程。

在这个电话之后,桌子仍然是空的,我不知道为什么。

我检查过的问题:

  1. 变量名
  2. 连接
  3. 语法(我认为是正确的语法)

更新:PHP 代码

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbName = "shoppingcartdb";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbName);

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

$sql = "INSERT INTO address (Address, PostalCode, City, County, Phone, Fax)
VALUES ('".$_POST["address"]."', '".$_POST["p_code"]."', '".$_POST["city_sector"]."', '".$_POST["county"]."', '".$_POST["phone"]."', '".$_POST["fax"]."')";
$conn->query($sql);
$sql = "CALL Insert_User('".$_POST["username"]."', '".$_POST["f_name"]."', '".$_POST["l_name"]."', '".$_POST["psw"]."', '".$_POST["email"]."')";
if(!$conn->query($sql))
	echo "failed";
$conn->close();
?>

更新:程序 Code ScreenShot

【问题讨论】:

  • 您是否检查了分析器,如果查询是在服务器上执行的?
  • 查看更新后的 php 代码,您根本不需要存储过程。只需通过 mysqli_insert_id() 获取地址插入后最后插入的 id,然后在用户中使用普通插入即可。
  • 成功了!谢谢你:)

标签: php mysql procedure


【解决方案1】:
  1. 您将输入变量和局部变量与会话变量混淆了。 @id_addid_add 不同,@f_name 也不是同一个广告f_name。因此,您正在尝试将空值插入表中。

  2. 如果在查询前后适当地设置了分隔符,我无法在屏幕截图中看到。请检查一下。

  3. 通过 phpmyadmin 测试来检查存储的过程。

【讨论】:

  • 您好!我是php世界的新手。我刚刚开始学习它。您能给我一个“1.”的代码示例吗?
  • 我刚刚删除了@。该表仍然是空的。
  • 我在新程序中添加了一个额外的屏幕截图
  • 好的,我希望我不要推高限制,但我刚刚搜索了如何在 phpmyadmin 中测试存储过程,但我没有找到任何结论,我只是按下按钮去并出现一个检查标志。第2点我不知道你指的是什么:)
  • 您需要使用适当的参数从 phpmyadmin 执行它。至于第二点,搜索mysql delimiter。
猜你喜欢
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多