2016-04-20 2 views
2

Итак, я установил этот скрипт джекпота с макетом и всем, а внутри скрипта джекпота был файл set.php, который я пытался настроить, он выглядел так:Таблица 'databasename.info' не существует

<?php 
$sitename = "csgoxd.net"; 
$link = @mysql_connect("localhost:3306", "csgoxdne", "thisisasecretpassword"); 
$db_selected = mysql_select_db('csgoxdne_csgoxddb', $link); 
mysql_query("SET NAMES utf8"); 

function fetchinfo($rowname,$tablename,$finder,$findervalue) { 
    if($finder == "1") $result = mysql_query("SELECT $rowname FROM $tablename"); 
    else $result = mysql_query("SELECT $rowname FROM $tablename WHERE `$finder`='$findervalue'") or die (mysql_error()); 
    $row = mysql_fetch_assoc($result); 
    return $row[$rowname]; 
} 
?> 

Так что я новичок, когда дело доходит до кодирования вообще (я знаю некоторые базовые вещи, но это все), поэтому в основном я не уверен, что я должен заполнить больше этого файла, потому что я получаю это ошибка на моем сайте.

«Таблица„csgoxdne_csgoxddb.info“не существует»

Я новичок в этом, и я пытаюсь научиться так помощь очень ценится.

+1

Я предлагаю вам удалить этот скрипт и двигаться дальше. 'mysql _ *()' функции официально устарели и удалены из PHP, и этот код ужасно написан. он просто предполагает успех, он уязвим для [sql injection attack] (http://bobby-tables.com), и он использует '@' подавление ошибок, что является (детским) кодирующим эквивалентом, набивающим ваши пальцы в уши и «лалалалала не слышит». –

+0

Итак, нет другого решения? –

+0

Хорошо, решение состоит в том, чтобы выяснить, почему ваша таблица 'info' не существует, но это не решит, что этот скрипт - дерьмо. –

ответ

0

Вы должны использовать MySQLi, чтобы использовать его преимущества, которые он предлагает через MySQL. Вы можете увидеть больше here. Сценарий у вас не так уж плох, но он нуждается в некоторой настройке. Он уязвим для инъекций, как сказал Марк Б. Я собираюсь предположить, что «csgoxdne_csgoxddb» - это имя вашей таблицы. Попробуйте следующее:

<?php 
$mysqli = new mysqli("localhost:3306", "csgoxdne", "thisisasecretpassword"); 
if (mysqli -> error){ print ("Error connecting! Message: ".$mysqli->error); } 
mysqli_set_charset($mysqli, 'utf8'); 

function fetchinfo($rowname,$tablename,$finder,$findervalue) { 
    if($finder == "1"){ 
    $query ="SELECT * FROM $tablename WHERE rowname = '$rowname'"; 
    $result = mysqli_query($mysqli, $query); 
}else{ 
    $query = "SELECT * FROM $tablename WHERE `$finder`='$findervalue'"; 
    if (!$query){die('Invalid query: '.$mysqli->error);} 
    $result = mysqli_query($mysqli, $query); 
} 
return $result; 
} 
?> 

О, и убедитесь, что номер порта на вашем локальном хосте верен.

Кроме того, чтобы пройти через значение результата вы можете использовать:

if (mysqli_num_rows($result) > 0){ 
while ($row = mysqli_fetch_array($result)){ 
    #do things 
} 
} 
+0

Спасибо за ответ! Пробовал это и, похоже, получил еще одну ошибку: ** Ошибка анализа: ошибка синтаксиса, неожиданный '->' (T_OBJECT_OPERATOR) в /home/csgoxdne/public_html/set.php в строке 3 ** Строка 3: if (mysqli -> error) {print («Ошибка подключения! Сообщение:». $ mysqli-> error); } –

+0

Попробуйте напечатать его, а не копировать и вставлять, вы можете получить невидимый персонаж, где-то там, где он ошибается. – Enigma

+0

Хорошо, сделаю! Спасибо. –

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