У меня есть небольшой скрипт для загрузки данных в базу данных mysql из файла csv, и я хочу проверить список значений, находящихся внутри файла csv.
Файл CSV:
code,alert_quantity 12345,10
PHP-файл:
<?php $link_id = mysql_connect("localhost", "root", "") or die("Could not connect."); if(!mysql_select_db("database",$link_id)) die("database was not selected."); function _checkIfCodeExists($code){ $sql = "SELECT COUNT(*) AS count_no FROM products WHERE code = ?"; $count = $sql; if($count > 0){ return true; }else{ return false; } } function _updateData($line_of_data){ $code = $line_of_data[0]; $newAlert = $line_of_data[1]; $sql = "UPDATE "; } $file_handle = fopen("file.csv", "r"); while (($line_of_data = fgetcsv($file_handle, 1000, ",")) !== FALSE) { $query = mysql_query("SELECT * FROM products WHERE code ='$line_of_data[0]'") or die(mysql_error()); $message = ''; $count = 1; if(_checkIfCodeExists($line_of_data[0])){ try{ _updateData($_data); $message .= $count . '> Success:: Product with code (' . $line_of_data[1] . ') Exist (' . $line_of_data[0] . '). <br />'; }catch(Exception $e){ $message .= $count .'> Error:: While updating alert (' . $line_of_data[1] . ') of code (' . $line_of_data[0] . ') => '.$e->getMessage().'<br />'; } }else{ $message .= $count .'> Error:: Product code (' . $line_of_data[0] . ') Doesnt exist<br />'; } $count++; } echo $message; ?>
Я не хочу импортировать эти значения, просто хочу проверить, существуют ли они и получить результат.
Любая помощь приветствуется.
Как говорили другие, вы действительно должны использовать PDO. Но, чтобы ответить на ваш вопрос, mysql_num_rows – ваше решение.
$query = mysql_query("SELECT * FROM products WHERE code='$line_of_data[0]' AND alert_quantity = '$line_of_data[1]'") or die(mysql_error()); if (mysql_num_rows($query)) // Data is already in database else // Data not in database
Проверьте, есть ли подзапросы mysql.
Существующие и не существующие подзапросы