JAYJKB
JAYJKB

Reputation: 95

MySQL query working in phpmyadmin but not in php

I want to select data from a table in MySQL. My code in php:

$conn = mysqli_connect($db_server, $db_benutzer, $db_passwort, $db_name);

$results= mysqli_query($conn, "SELECT * FROM `test` WHERE russia = 'привет'");
if(mysqli_num_rows($results) > 0) { 
    echo "Results";
}
else {
    echo "No results";
}

mysqli_close($conn);

Here I'm getting "No results". But when I run the SELECT-code directly in phpmyadmin i get a result.

What's wrong? Thank you

Upvotes: 3

Views: 230

Answers (2)

Bishwabikash Das
Bishwabikash Das

Reputation: 30

  1. You won't get 0 results in any way,you either get results or no results. 2.try removing the quotes from the table name
  2. Check for any Encoding issues with the connection encoding and that the data on the value of column russia is parsed as something else. Try executing the following query before executing your main query

    mysqli_query($conn,"SET character_set_results='utf8',character_set_client='utf8',character_set_connection='utf8',character_set_database='utf8',character_set_server='utf8'");

The problems arise if there are Encoding issues in the connection.

Upvotes: -2

Jirka Hrazdil
Jirka Hrazdil

Reputation: 4021

You have cyrillic characters in your query, so it may be necessary to set mySQL connection encoding. If you are using utf-8, insert following line after mysqli_connect:

mysqli_query($conn, "SET NAMES 'utf8'");

Or if your script is saved in windows-1251, use the following: mysqli_query($conn, "SET NAMES 'cp1251'");

For more information about connection character sets and encodings please see the manual

And why does the query work in phpMyAdmin? Because it probably sets encoding for you in the background.

Upvotes: 4

Related Questions