Ich frage mich, wie ich auf eine Speicherprozedur mit einem in Parameter im PHP-Code mit PDO aufrufen kann.PHP-Aufruf zu speichern Prozedur mit PDO-Problem
Die Art, wie ich dies tun möchte, ist ein Auswahlfeld aus der Datenbank geladen, wählen Sie einen Wert und verwenden Sie dann diesen Wert als ein Parameter für meine Speicherprozedur.
Zuerst habe ich die SQL für meine Auswahlbox:
$authorSql = "SELECT * FROM author";
$authorQuery = $pdo->prepare($authorSql);
$authorQuery->execute();
dann in meinem 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>
Der Code für die Shop-Verfahren ist:
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
Die I Teil kann nicht begreifen, was zu tun ist, um den gewählten Wert aus der Auswahlbox zu erfassen und in den Aufruf der Speicherprozedur überzugehen.
-Danke
Dank, aber wenn ich einen Wert aus dem Auswahlfeld wählen, nichts passiert, hat den $ Autor Variable aus dem Auswahlbox Pass in der Wert für die Speicherprozedur? – user2371684
Ich habe die Variable nur als Beispiel geschrieben. Übergeben Sie die Variable, die den Wert des Parameters enthält, den Sie in der gespeicherten Prozedur "jokes_author" übergeben würden. Ich vermute, Sie würden die Autor-ID darin übergeben :) – gaganshera
normalerweise wäre es die Namenszeichenfolge, die übergeben werden würde, aber ich bin verwirrt, welche Variable in die Speicherprozedur übergeben werden soll – user2371684