gpt4 book ai didi

php 调用存储过程并出现 pdo 问题

转载 作者:行者123 更新时间:2023-11-29 19:05:45 25 4
gpt4 key购买 nike

我想知道如何使用 pdo 在 php 代码中调用带有 in 参数的存储过程。

我想要执行此操作的方法是显示从数据库加载的选择框,选择一个值,然后使用该值作为我的存储过程的 in 参数。

首先,我有选择框的 sql:

$authorSql = "SELECT * FROM author"; 
$authorQuery = $pdo->prepare($authorSql);
$authorQuery->execute();

然后在我的html中:

<select name="authorid"> 
<?php

$authorid="";
while($author = $authorQuery->fetch()) {
if ($author['id'] == $authorid) {
//The author is currently associated to the joke, select it by default
echo "<option value=\"{$author['id']}\" selected>{$author['name']}</option>";
} else {
//The author is not currently associated to the joke
echo "<option value=\"{$author['id']}\">{$author['name']}</option>";
}
}

?>
</select>

<table width='80%' border=0>

<tr bgcolor='#CCCCCC'>
<td>Joke</td>
<td>Author Name</td>
<td>Update</td>
</tr>
<?php
$result = $pdo->query("call jokes_author(:author)");
while($row = $result->fetch()) {
echo "<tr>";
echo "<td>".$row['joketext']."</td>";
echo "<td>".$row['name']."</td>";
echo "<td><a href=\"edit.php?id=$row[id]\">Edit</a> | <a href=\"delete.php?id=$row[id]\" onClick=\"return confirm('Are you sure you want to delete?')\">Delete</a></td>";
}

?>
<a href="logout.php">Logout</a>
</table>

存储过程的代码是:

CREATE PROCEDURE `jokes_author`(IN author VARCHAR(255))
BEGIN
SELECT joke.joketext, author.name FROM author INNER JOIN joke ON author.id = joke.authorid where name = author;
END

我无法理解的部分是如何从选择框中捕获所选值并将其传递给存储过程的调用。

-谢谢

最佳答案

按以下方式使用 PDO:

$result = $pdo->prepare("call jokes_author(:author)");       
$result->bindParam(':author', $author);
$result->execute();

关于php 调用存储过程并出现 pdo 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43528287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com