Warning: mysqli_real_escape_string() erwartet parameter 1 to be mysqli, string gegeben
Ich habe einen geschützten Bereich meiner Website, wo ich kann hinzufügen, aktualisieren und löschen von Datenbank-Einträge. Ich bin versucht, zu aktualisieren das script von mysql auf mysqli. Alles funktioniert, außer für die "update" - Teil. Wenn ich füllen Sie die neuen Informationen ein, und klicken Sie auf "update", es gibt mir diese Fehlermeldung:
Warning: mysqli_real_escape_string() erwartet parameter 1 to be mysqli,
string in
/home3/tarb89/public_html/aususrpg.net/charbase/updated.php in Zeile 19
Ich bin mir nicht sicher, was ist hier falsch; ich bin ein totaler newbie, so meine Entschuldigung.
Hier ist meine update.php code:
<?php
//Create connection
$con=mysqli_connect("xxx","xxx","xxx","xxx");
//Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id = $_GET['id'];
$result = mysqli_query($con,"SELECT * FROM characters WHERE id = '$id'");
$my_array = array($c_z);
extract($my_array);
?>
<form id="FormName" action="../charbase/updated.php" method="post" name="FormName">
<table width="448" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="150" align="right"><label for="name">Name: </label></td>
<td><input name="name" maxlength="255" type="text" value="<?php echo stripslashes($name) ?>"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input name="" type="submit" value="Update">
<input name="id" type="hidden" value="<?php echo $id ?>">
</td>
</tr>
</table>
</form>
Das andere Problem habe ich mit der update.php Seite ist, wenn es zeigt die Tabelle, sollten die Eingänge die Informationen angezeigt, die bereits in der Datenbank; derzeit wird das Feld name aber der input-Sektion ist leer. Es sollte der name bereits Daten in der Datenbank (dann kann ich ersetzen Sie es mit dem, was ich will, es zu aktualisieren, wie.)
Hier ist die updated.php code:
<?php
//Create connection
$con=mysqli_connect("xxx","xxx","xxx","xxx");
//Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id = $_POST['id'];
$name = mysqli_real_escape_string(trim($_POST["name"]), $con);
$rsUpdate = mysqli_query($con,"UPDATE characters SET name='$name'
WHERE id='$id'");
if($rsUpdate) { echo "Successfully updated"; } else { die('Invalid query: '.mysql_error()); }
?>
<a href="index.php">Back to index</a>
Jegliche Hilfe würde sehr geschätzt werden. Dieses Ding treibt mich verrückt.
Anderes Problem: siehe oben update.php code.
Wenn ich auf einen link neben einem Datenbank-Eintrag, genannt "Update-Informationen", es dauert mir zu aktualisieren.php?id=charactersid
Aktuell, es zeigt ein leeres Eingabeformular. Ich kann die eingegebenen Informationen und klicken Sie auf "update" und es WIRD korrekt aktualisiert.
Allerdings, wenn ich genommen werde, um die update.php Seite, möchte ich es zur Anzeige der input-form, außer die Werte sollten alle gleich was ist bereits in der Datenbank.
Beispiel:
Was er derzeit zeigt:
Name: [leeres Eingabefeld]
Was ich will, es zu zeigen:
Name: [Aktueller name in der Datenbank gelisteten]
Damit der Wert der Eingabe sollten die Informationen für das Zeichen;, so dass, wenn ich aktualisieren möchten, kann ich sehen, was bereits aufgeführt ist als information für das Zeichen und ändern/löschen/hinzufügen, was ich sonst noch brauchen.
Macht das mehr Sinn?
- Verbindung kommt zuerst. us2.php.net/mysqli_real_escape_string
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nutzen Sie Sie den umgekehrten Weg:
So sollte es sein:
Quelle: http://php.net/mysqli_real_escape_string
Da bist du mit MySQLi-ich würde Ihnen vorschlagen, springen Sie einfach in den vorbereiteten Aussagen eher als real_escape, wie diese:
Wählen Sie die Charakter-name:
no character found...
wenn die ID nicht vorhanden ist.characters.php
statt und Lesen Sie alle Zeichen aus, dass id mit Seitenzahlen, und wenn man geklickt schickte es an dieupdate.php
Seite. Auch vergessen Sie nicht, verwenden die PHP-session und eine login Seite anders wer weiß, wie Ihr system funktioniert, wird in der Lage sein, zu Bearbeiten jemand anderes Zeichenstriplashes
wenn Sie mit MySQLi mit prepared statement, wie ich gezeigt habe, auf die oben im letzten code, und wenn u versuchen, mein code u werden sehen, es wird gedruckt, der name der Figur, wenn die id vorhanden ist.<input name="name" maxlength="255" type="text" value="<?php echo $name; ?>">