Я работаю над сайтом, чтобы делиться названиями песен, и я подготовил форму рекомендации, которую я включаю в каждую страницу. Эта форма рекомендаций представлена в формате HTML и ведет на страницу действий PHP, где полученная информация добавляется в таблицу SQL. Вот код:
<?php
ob_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="MYPASSWORD"; // Mysql password
$db_name="DB NAME"; // Database name
$tbl_name="songshare"; // Table name
// Connect to server and select databse.
$link = mysqli_connect("$host", "$username", "$password")or die("cannot connect");
mysqli_select_db($link, "$db_name")or die("cannot select DB");
// Define $myusername and $mypassword
$song=$_POST['song'];
$album=$_POST['album'];
$artist=$_POST['artist'];
$linkitunes=$_POST['linkitunes'];
$artwork=$_POST['albumPic'];
// To protect MySQL injection (more detail about MySQL injection)
$song = stripslashes($song);
$album = stripslashes($album);
$artist = stripslashes($artist);
$song = mysqli_real_escape_string($link, $song);
$album = mysqli_real_escape_string($link, $album);
$artist = mysqli_real_escape_string($link, $artist);
$sql="SELECT * FROM $tbl_name WHERE song='$song'";
$result=mysqli_query($link, $sql);
if ($result->num_rows){
echo "Song already taken" . "<br />";
echo "<a href='/music.php'>music</a>";
exit();
}
$sql="INSERT INTO recommendation (user_id, artist, song, album, artwork, linkitunes)";
$sql = $sql . " VALUES ('$_SESSION['user_id']', '$artist', '$song', '$album'. '$artwork'. '$linkitunes');";
$result=mysqli_query($link, $sql);
if(!$result) {
echo "Recommendation failed" . "<br />";
echo $sql;
} else {
print "$song, $artist, $album";
}
ob_end_flush();
?>
Я проверил, что каждое имя пользователя, пароль, ссылка верны и действительны. Мой сервер на самом деле работает на PHP. Мне кажется, что PHP-код даже не работает.
Огромное спасибо заранее.
-Cameron
Включите отчеты об ошибках, добавив это в верхней части страницы:
ini_set("display_errors",true);
и измените эту строку:
$link = mysqli_connect("$host", "$username", "$password")
в
$link = mysqli_connect($host, $username, $password,$db_name);
Пожалуйста, посмотрите, как работать с MySQLi
Вместо '$album'. '$artwork'. '$linkitunes'
Делать: '$album', '$artwork', '$linkitunes'
, сохраняя данные.
Попробуй это :-
$sql = $sql . " VALUES ('".$_SESSION['user_id']."', '$artist', '$song', '$album', '$artwork', '$linkitunes')";
вместо
$sql = $sql . " VALUES ('$_SESSION['user_id']', '$artist', '$song', '$album'. '$artwork'. '$linkitunes');";