php - 如何将文件内容添加到 PHP 中的 MySQL 查询

标签 php mysql database

我正在使用以下 php 查询在我的 CMS 系统中安装表格:

$q=new mysql("
INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) VALUES
(0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', 'admin@domain.com');
");

但是,我不想使用电子邮件 admin@domain.com,而是使用存储在 /settings/contact.inc.php 文件中的电子邮件:

    <?php    
$emailaddress='admin@domain.com';
    ?>

最佳答案

只需包含文件并使用变量:

require_once("/settings/contact.inc.php");

$q=new mysql("
INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) VALUES
(0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', '$emailaddress');
");

谨防SQL注入(inject)

在这种情况下,您知道 $emailaddress 的来源,您可以信任其中的内容。在其他情况下,您需要保护您的代码免受 SQL injection 的影响。 .

因此,我建议您使用 prepared statements , 使用 mysqli功能。

然后您可以用问号或命名占位符替换查询中的变量:

"INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) VALUES (0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', ?);"

并使用 mysqli_stmt_bind_param 绑定(bind) $emailaddress功能。

关于php - 如何将文件内容添加到 PHP 中的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16668851/

相关文章:

mysql - 使用 HeidiSql 访问 MySql

mysql - Eloquent ORM 导致 MySQL 选择不返回所有行

database - 术语读取修复在应用于数据库时意味着什么?

php - phpbb3 论坛上的单独 mysql 查询不返回任何内容(mysql 在服务器上,但 phpbb 没有使用它)

php - 这些 NULL 是什么意思?

MySQL保存错误没有错误

sql-server - SQL 服务器 : multiple counts with joins

mysql:从连接返回多个 csv 列

具有多个条件的 PHP MySQL 搜索

php - 在 php 中将 5-7 位数字转换为 xxx/xxx/xxx 格式的最干净的方法是什么?