2013-08-26 2 views
0

Я очень новичок в PHP.Как проверить существующие строки в таблице базы данных

Может кто-нибудь, пожалуйста, проверьте этот код и скажите мне, в чем проблема.

<?php 
    require_once 'excel_reader2.php'; 
    $data = new Spreadsheet_Excel_Reader("NZ_Price_List.xls"); 
    error_reporting(E_ALL^E_NOTICE); 
    //start mysql connection 
    $con=mysqli_connect("localhost","root","ebooks3","newlocalabc"); 
    // Check connection 
    if (mysqli_connect_errno()) 
     { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 
    for($i=1;$i < $data->rowcount();$i++) 
    { 
    $p = $data->val($i,'A'); 
    $sql = sprintf("select count(*) as cnt from products where `isbn` = '%s'", mysql_real_escape_string($p)); 
    $row_dup = mysql_fetch_assoc(mysql_query($sql,$con)); 
    if ($row_dup['cnt'] == 0) { 

      //insert 
     } 
else{ 
//update 
} 
    } 

    echo "hello done"; 
    mysqli_close($con); 

    ?> 

Я пытаюсь сравнить значения из электронной таблицы Excel с базой данных. Если значение уже присутствует, то просто обновляйте или если значение не существует, тогда мне нужно переписать строку.

Я получаю следующее сообщение об ошибке:

mysql_fetch_assoc() ожидает параметр 1, чтобы быть ресурсом, нулевой данный

Некоторые пожалуйста, дайте мне как можно скорее.

+5

Вы смешиваете вызовы базы данных mysql и mysqli, вам нужно исправить это для начала. Все они должны быть mysqli на основе вашего соединения – bumperbox

+0

Возможный дубликат [Вставить в таблицу или обновить, если существует (MySQL)] (http://stackoverflow.com/questions/4205181/insert-to-table-or-update-if- exists-mysql) –

ответ

0

Вы используете mysqli соединение, так что вы должны использовать mysqli_ функции, а не mysql_. Таким образом, ваш код должен быть -

$sql = sprintf("select count(*) as cnt from products where `isbn` = '%s'", mysqli_real_escape_string($con,$p)); 
$row_dup = mysqli_fetch_assoc(mysqli_query($con,$sql)); 
-1
$num = mysql_num_rows(mysql_query($sql,$con)); 
+5

Вы должны объяснить, почему это отвечает на вопрос. –

+0

Спасибо, но его все равно то же самое. – user2636163

+0

Вы исправили вызовы mysql/mysqli? –

Смежные вопросы