Ich fange gerade an, über phpMyAdmin und mysql zu lernen. Hier ist eine Frage: Ich möchte etwas in meiner "Schüler" -Tabelle auswählen und das Ergebnis wiedergeben. aber als ich überprüft habe, gibt es 0 Zeilen für die Suche zurück. aber ich habe es in meiner Datenbank. hier ist mein Code:Wählen Sie ein Attribut in mysql, php
$conn = new mysqli($servername, $username, $password, $dbname);
$params="@name varchar(30)";
$paramslist="@name='$name%";
$sql = "SELECT name,address,city,birthday FROM student WHERE [email protected]";
$dbsql = "EXEC sp_executesql
N'$sql',
N'$params',
$paramslist";
$result = $conn->query($sql);
ECHO $result->num_rows;
Ich weiß nicht, was das Problem ist. danke für die Hilfe.
Dies ist eine sehr seltsame Art und Weise Ihre Anfrage auszuführen. Warum verwenden Sie eine Prozedur, wenn [vorbereitete Anweisungen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und ['bind_param'] (http://php.net/manual /en/mysqli-stmt.bind-param.php) tun Sie das alles viel einfacher? Ich denke, trotz all dieser Probleme haben Sie immer noch einen SQL-Injection-Fehler, da '$ name' nicht korrekt maskiert ist. – tadman
sind keine Groß- und Kleinschreibung? Sie verwenden 'name' und' NAME' – RST
Warum nicht die Methoden befolgen, die in (modernen) Lehrbüchern und Tutorials beschrieben sind? – Strawberry