Ich habe dieses PHP-Skript für die Veröffentlichung von Ankündigungen in einer Datenbank mit mySQL. Ich möchte es ändern, um PDO zu verwenden.Wie konvertiert man mySQL nach PDO
Der Code, den ich ursprünglich haben, ist hier:
<?php
require_once"connection.php";
session_start();
if(isset($_POST['annForm']))
{
$userID=$_SESSION['sessionUser'];
$idQuery=mysql_query("SELECT adminID FROM administrator WHERE username='$userID'");
$adminID=mysql_fetch_array($idQuery);
$genAnnouncement=$_POST['annForm'];
$genAnnouncement=mysql_real_escape_string($genAnnouncement);
$addGenAnnQuery="INSERT INTO generalannouncement (adminID, genAnnouncement) VALUES('$adminID[0]','$genAnnouncement')";
$announcementAdded=mysql_query($addGenAnnQuery);
if(!$announcementAdded)
{
echo 'Could Not Add Announcement, Try Again Later.<br>';
echo mysql_error();
}
else
echo 'Announcement Added Successfully.<br>';
header("refresh:500;url=adminsHomepage.php");
return;
mysql_close($con);
}
?>
ich den Code PDO verwenden geändert haben, aber ich bin Fehler jetzt auf der Leitung 24 mit undefinierten Index $ adminID [0] und die Leitung 25 mit Integritätsbedingung bekommen Verletzung: 1048 Die Spalte 'adminID' darf nicht null sein. Der modifizierte Code ist wie folgt:
require_once"connection.php";
session_start();
if(isset($_POST['annForm']))
{
$userID=$_SESSION['sessionUser'];
$idQuery= $conn->prepare("SELECT adminID FROM administrator WHERE username='$userID'");
$idQuery->execute();
$adminID= $idQuery->fetch();
$genAnnouncement=$_POST['annForm'];
if (isset($genAnnouncement))
{
$sql = "INSERT INTO generalannouncement (adminID, genAnnouncement)
VALUES (:adminID, :genAnnouncement)";
$stmt = $conn->prepare($sql);
$stmt->execute(array(
':adminID' => $_POST['$adminID[0]'],
':genAnnouncement' => $_POST['annForm']));
echo 'Announcement Added Successfully.<br>';
header("refresh:500; url= adminsHomepage.php");
return;
}}
Warum Sie haben '$ adminID [0]' in Ihrem ursprünglichen Code, aber wickeln Sie es dann in '$ _POST' ->' $ _POST ['$ adminID [0]'] 'in Ihrem neuen Code ein? – Sean
Es sollte nur ': adminID '=> $ adminID [0] sein,' ohne $ _POST [' '/' '] ' – Sean
@Sean Ich hatte $ adminID [0] weil das der Wert der ID von war der aktuelle Benutzer angemeldet – user3531869