43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?PHP
 | |
| /**
 | |
|  * Checks the distinctly_typed_strings table for whether it
 | |
|  * contains a string.
 | |
|  */
 | |
| declare(strict_types = 1);
 | |
| 
 | |
| /**
 | |
|  * Checks the distinctly_typed_strings table for whether it
 | |
|  * contains a string.
 | |
|  */
 | |
| final class NodaDistinctlyTypedStrings {
 | |
|     /**
 | |
|      * Checks the vocabulary database whether it contains a given string.
 | |
|      *
 | |
|      * @param MDMysqli $mysqli_noda DB connection.
 | |
|      * @param string   $lang        Language to check in.
 | |
|      * @param string   $search_term Search term.
 | |
|      *
 | |
|      * @return 'persinst'|'zeiten'|'orte'|'tag'|''
 | |
|      */
 | |
|     public static function lookup(MDMysqli $mysqli_noda, string $lang, string $search_term):string {
 | |
| 
 | |
|         $result = $mysqli_noda->query_by_stmt("SELECT `type`
 | |
|             FROM `distinctly_typed_strings`
 | |
|             WHERE `input_string` = ?
 | |
|                 AND `language` = ?", "ss", $search_term, $lang);
 | |
| 
 | |
|         if (!($cur = $result->fetch_row())) {
 | |
|             $result->close();
 | |
|             return '';
 | |
|         }
 | |
|         $result->close();
 | |
| 
 | |
|         if (!in_array($cur[0], ['persinst', 'zeiten', 'orte', 'tag', ''], true)) {
 | |
|             throw new Exception("Distinctly typed string of unknown type: " . $cur[0]);
 | |
|         }
 | |
| 
 | |
|         return $cur[0];
 | |
| 
 | |
|     }
 | |
| }
 |