#php #mysql
#php #mysql
Вопрос:
Я только начал изучать php, и у меня возникли проблемы с поиском проблемы, когда я подключаю его к базе данных и запускаю запрос ‘INSERT’. Я думаю, что проблема в моем connection.php файл.
insert.php:
<?PHP
echo "into";
include("connection.php");
echo "connected";
$table = blog;
$sql = "INSERT INTO $table SET
Title = '$_POST[title]',
Description = '$_POST[description]',
Content = '$_POST[content]'";
$query = @mysql_query($sql);
echo "complete";
echo $_POST[title];
echo $_POST[description];
echo $_POST[content];
?>
connection.php:
<?php
echo "connection file reached";
$conn = mysql_connect(localhost, user, pass);
mysql_select_db(test, $conn);
echo "connected";
?>
Буду признателен за любые советы по моему коду или как я мог бы решить эту проблему.
РЕДАКТИРОВАТЬ: я думаю, что это никогда не доходит до connection.php файл, потому что он показывает «into» в верхней части insert.php но не «достигнут файл подключения» в верхней части connection.php . Корректен ли этот вызов для этого файла?
Спасибо
Комментарии:
1. Вы должны использовать mysqli или PDO, чтобы предотвратить SQL-инъекции.
2. Это только на локальном сервере, так что это не должно быть слишком большой проблемой, не так ли?
3.
$table
не определено.4. установите
error_reporting(E_ALL);
иini_set('display_errors', 1);
5. получаем ошибку <?php $link = mysql_connect(‘localhost’, ‘mysql_user’, ‘mysql_password’); if (!$link) { die(‘Не удалось подключиться: ‘ . mysql_error()); } echo ‘Успешно подключено’; mysql_close($link); ?>
Ответ №1:
Ознакомьтесь с php-константами, переменными и строками!
define('foo','bar'); // foo == 'bar';
$foo = 'bar'; // $foo == 'bar'
Пожалуйста, используйте, mysqli_*
поскольку mysql_*
это обесценивается.
$conn = mysql_connect(localhost, user, pass);
вероятно, должно быть
$conn = mysql_connect('localhost', 'user', 'pass');
Комментарии:
1. Это сработало, спасибо. Он прошел и сказал подключено и т.д., Но база данных по-прежнему пуста, есть идеи по этому поводу?
2. Я бы установил phpmyadmin в вашем установочном xamp или любом другом, который вы используете, и начал бы с копирования в результате
echo $sql
это поможет вам отладить ваш запрос3. у меня запущен Sequel Pro, и я могу видеть базу данных
Ответ №2:
вы написали
@mysql_query($sql)
а также множество других проблем, его структура также неверна, проблема может быть в версии вашего языка, в качестве рекомендации php вам больше не следует использовать mysql, используйте mysqli или PDO