php - 如何在 SQL 的存储过程中获取 select 语句返回的内容
问题描述
我有一个执行“插入”然后执行“选择”的存储过程。我已经使用所有 fetch 来获取选择的值,但它们不起作用。
PHP 代码
示例.php
<?php
/////////CALLING CONTROLLER (using require_once)///////////
$controller = new Controller();
$exam = $controller->getExample();
$exam2 = $controller->getExample2('a');
?>
<label for="exam1">Example 1</label>
<input type="text" name="exam1" id="exam1" value="<?php echo $exam[0]["texto"] ?>" style="width: 300px">
<br>
<label for="exam2">Example 2</label>
<input type="text" name="exam2" id="exam2" value="<?php echo $exam2[0]["texto"] ?>" style="width: 300px">
控制器.php
<?php
class Controller {
public function getExample(){
/////////////CREATING 'CONNECTION' TO CONNECT WITH MODEL//////////////
$querySQL = "EXEC [dbo].[example]";
$execQuery=$connection->prepare($querySQL);
$execQuery->execute();
return $execQuery->fetchAll(PDO::FETCH_ASSOC);
}
public function getExample2($name){
/////////////CREATING 'CONNECTION' TO CONNECT WITH MODEL//////////////
$querySQL = "EXEC [dbo].[example2] ?";
$execQuery=$connection->prepare($querySQL);
$execQuery->bindValue(1, $name);
$execQuery->execute();
return $execQuery->fetchAll(PDO::FETCH_ASSOC);
}
}
SQL 服务器
CREATE PROCEDURE example
AS
SELECT 'whatever' as texto;
CREATE PROCEDURE example2
@name [nvarchar](40)
AS
INSERT INTO prueba
([name])
VALUES
(@name)
SELECT 'whatever2' as texto;
我认为我的错误在于 PHP 的代码。我的查询运行良好,关于第二个过程(example2),这成功插入了一个新寄存器('a')但是当我尝试调用'texto'时返回我: 注意:未定义的偏移量:C:\xampp\htdocs 中的 0.. .,与第一个不同(示例返回“随便”)。请帮忙,我不知道如何在第二个过程中获取 texto 的值
而且......我真的向那些在我之前的帖子中看到这个问题作为答案的人道歉,我不知道我做错了什么
解决方案
推荐阅读
- vue.js - Vuejs 错误:属性或方法“cart”未在实例上定义,但在渲染期间被引用。未定义属性“cartItems”
- javascript - 在 JavaScript 中传递参数的问题
- google-oauth - Google refreshtoken 401 错误:未经授权 - android
- php - Mosquitto MQTT 磁盘读取峰值
- python - 如何使 tkinter 窗口响应在 Tkinter Python 中使用 pack() 方法放置的小部件?
- react-native - 无法在 react-native-scroll-bottom-sheet 中滚动 FlatList
- java - 与依赖的eclipse项目绑定不匹配
- spring-boot - 当多个 Junit 测试一起运行时,@EnableCaching 会被忽略
- reactjs - 无法从本地存储中获取数据并在同一页面上显示该数据
- java - 尝试启动摆动计时器时出现空指针异常错误?