php och mysqli

Puckohue

Veteran
Joined
9 Feb 2016
Messages
156
Location
Malmö
Blir tokig - jag är amatörprogrammerare som gillar att göra enkla webblösningar som support för mitt spelande, men det var länge sen nu. Jag vill göra något som jag tycker låter enkelt: kontrollera om det finns en rad i databasen med det värde användaren skickat i ett formulär. Men kommer inte förbi andra raden här:

PHP:
$sql = 'SELECT id FROM h_users WHERE username = ?';
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('s', $username);
$username = $_POST["username"];
$result = $stmt->execute();
Jag har testat allt möjligt, som att byta ut "?" i rad 1 mot "$username", men inget funkar.

Är det någon som kan och orkar hjälpa mig.
 

Puckohue

Veteran
Joined
9 Feb 2016
Messages
156
Location
Malmö
Kan tillägga att detta fungerar:

Code:
$stmt = $mysqli->prepare("INSERT INTO h_users (username, othername, email, password) VALUES (?, ?, ?, ?)");
$stmt->bind_param("ssss", $username, $othername, $email, $password);
$password = password_hash($_POST["pass1"], PASSWORD_DEFAULT);
$email = $_POST["email"];
$username = $_POST["username"];
$othername = $_POST["othername"];
$stmt->execute();
 

Feuflux

omjonasson.se
Joined
8 Jan 2001
Messages
4,784
Location
Linköping
Blir tokig - jag är amatörprogrammerare som gillar att göra enkla webblösningar som support för mitt spelande, men det var länge sen nu. Jag vill göra något som jag tycker låter enkelt: kontrollera om det finns en rad i databasen med det värde användaren skickat i ett formulär. Men kommer inte förbi andra raden här:

PHP:
$sql = 'SELECT id FROM h_users WHERE username = ?';
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('s', $username);
$username = $_POST["username"];
$result = $stmt->execute();
Jag har testat allt möjligt, som att byta ut "?" i rad 1 mot "$username", men inget funkar.

Är det någon som kan och orkar hjälpa mig.
Php och mysql i kombo var läääänge sedan och aldrig nåt fokus för mig, så jag har inte koll på bind_param (kör man verkligen den raden innan du sätter $username till något?), men kan du inte bara skriva:
$sql= sprintf("SELECT id FROM h_users WHERE username='%s'",
mysqli_real_escape_string($mysqli, $username));
$result = mysqli_query($mysqli, $sql);
 

Stareater

Får vissa att fatta vad rollspel kan vara.
Joined
6 Apr 2017
Messages
653
Location
Umeå
Alltså jag har inte gjort något med php på 10+ år och har inte gjort mycket alls. Jag har dock för mig att execute() inte ger något resultat. Det borde väl vara något i stil med....

Code:
$stmt->execute();
$result = $stmt->get_result();
 

Puckohue

Veteran
Joined
9 Feb 2016
Messages
156
Location
Malmö
Tack snälla. Huvudproblemet var att jag inte visste att jag var tvungen att ha med

global $mysqli;

eftersom koden är i en funktion (vilket jag glömde nämna…).
 
Top