gpt4 book ai didi

PHP MySQL 插入查询不工作,不显示任何错误消息

转载 作者:太空宇宙 更新时间:2023-11-03 12:32:09 24 4
gpt4 key购买 nike

我已经验证过 post 方法实际上使用回显来显示变量,但是当我使用下面的 Insert 查询时它不会添加行。

你有什么想法吗?

// 1. Create a DB connection
$connection = mysql_connect("localhost","root","P@ssword");

if(!$connection){
die("Database connection failed: " . mysql_error());
}

$menu_name = $_POST['menu_name'];
$position = $_POST['position'];
$visible = $_POST['visible'];

$query = "INSERT INTO subjects (menu_name, position, visible) VALUES ('{$menu_name}', {$position}, {$visible})";

$result = mysql_query($query, $connection);

if ($result){
header("Location:staff.php");
exit;
} else {
echo "<p> There was an error when creating the
subject </p>";
"<p>". mysql_error()."</p>" ;

}

mysql_close($connection);

最佳答案

令人困惑的代码 o.O!。我的代码看起来像这样已经很久了。所以很难弄清楚,大声笑。但是,当涉及到 mysql 错误时——当某些东西没有正确地向我提供错误时(当调试时看起来像这样)——我逐行阅读。然后我回显查询,并使用 mysqladmin 或其他 sql 工具对其进行测试。我也会跑$query = mysql_query($query) or die(mysql_error());在同一行上进行快速调试。

值得注意的问题

a) 切换到 mysqli为将来的 PHP 更改做好准备。如果你喜欢 mysql,请熟悉 mysqli。

  1. 您没有选择数据库。 mysql_select_db
  2. 重要 这是发布数据 - 这意味着您确实需要过滤信息。为了允许使用插入将任何内容输入数据库,而不逃避危险字符 - 你留下了很多东西可以玩;)。即使,如果您是唯一输入信息的人下面我改了一点。您有带单引号的 '{$menu_name}',但没有带单引号的 {$position} 和 {$visible} - 当您几个月后返回时,不一致会造成混淆。

为什么 ('{$menu_name}', {$position}, {$visible}) 不是 ('{$menu_name}', '{$position}', '{$visible}') ?相反。

更有条理

<?
$host = "localhost"; // hostname
$user = "root"; // username
$pass = "P@ssword"; // password
$db = ""; // database name

$connection = mysql_connect($host,$user,$pass) or die("Database connection failed: ".mysql_error());
$database = mysql_select_db($db,$connection) or die("DB Selection Error: ".mysql_error());

$menu_name = mysql_real_escape_string($_POST['menu_name']);
$position = mysql_real_escape_string($_POST['position']);
$visible = mysql_real_escape_string($_POST['visible']);

$query = "INSERT INTO `subjects` (`menu_name`, `position`, `visible`) VALUES ('{$menu_name}', '{$position}', '{$visible}')";

$result = mysql_query($query, $connection) or die(mysql_error());

if ($result){ // I would usually use mysql_insert_id as a validation from auto_increment tables.
header("Location:staff.php");
exit;
} else {
echo "<p> There was an error when creating the subject </p>
<p>". mysql_error()."</p>" ;
}
?>

关于PHP MySQL 插入查询不工作,不显示任何错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14907536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com