Я пытаюсь использовать свой пи в качестве веб-сервера. Когда я пытаюсь создать таблицу в моей базе данных, она возвращает внутреннюю ошибку сервера. Может кто-нибудь попытаться помочь мне диагностировать причину?
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'anthony';
$dbname = "messages";
$conn = mysql_connect($dbhost, $dbuser, $dbpass, $dbname);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully<br />';
$sql = "CREATE TABLE IF NOT EXISTS message_tbl (
message_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
message_name VARCHAR(50) NOT NULL,
message_subject VARCHAR(40) NOT NULL,
message_txt VARCHAR(500) NOT NULL,
message_amount INT(10) NOT NULL,
message_die VARCHAR(10) NOT NULL,
message_modifier INT(10) NOT NULL,
message_roll INT(10) NOT NULL
)";
mysql_select_db( 'TUTORIALS' );
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not create table: ' . mysql_error());
}
echo "Table created successfully\n";
mysql_close($conn);
?>
Обычно я бы ожидал, что он вернется с Не удалось создать таблицу. Я установил apache2, php и mysql с базой данных под названием messages на моем pi.
Порт MySQL по умолчанию — 3306, а не 3036. Но вы действительно должны удалить этот устаревший код и начать все заново с PDO. Нечто подобное может сработать. Я нахожусь на устройстве, использующем приложение, так что, вероятно, это не самая лучшая моя работа, но, по крайней мере, вы должны указать вам правильное направление.
<?php
try {
$conn = new PDO("mysql:host=localhost;dbname=TUTORIALS", "root", "anthony");
echo 'Connected successfully<br />';
$sql = "CREATE TABLE IF NOT EXISTS message_tbl (
message_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
message_name VARCHAR(50) NOT NULL,
message_subject VARCHAR(40) NOT NULL,
message_txt VARCHAR(500) NOT NULL,
message_amount INT(10) NOT NULL,
message_die VARCHAR(10) NOT NULL,
message_modifier INT(10) NOT NULL,
message_roll INT(10) NOT NULL
)";
$conn->query($sql);
echo "Table created successfully\n";
} catch (PDOException $e) {
die($e->getMessage());
}
?>
Других решений пока нет …