如果我使用 PDO 准备好的语句,并且我有一个如下查询:
SELECT cat_name, cat_id_PK, cat_amount
FROM categories
WHERE month=? AND is_recurring = '0'
ORDER BY cat_name ASC;
$results->bindValue(1, $cur_month);
Run Code Online (Sandbox Code Playgroud)
我还应该绑定 is_recurring 子句的值吗?“0”是硬编码的,我认为这不会让我容易受到 SQL 注入的攻击,但我想确认一下。我注意到在我正在查看的教程中,即使它不是传递的变量,它们也确实绑定了该值,这让我想知道我是否做得正确。
我正在创建一个用户将为其创建帐户的Web应用程序,允许他们在数据库上读/写数据.我即将开始创建网站的登录验证部分,这是我第一次真正做这部分.据我了解,我将创建一个用户表,该表将存储该网站的所有必要登录信息.
我知道还有数据库角色/权限.我的问题是关于2在这种情况下如何相关.我是否需要对网站和数据库中的用户进行身份验证?我的思维过程是,如果我的所有PHP脚本都设置为会话数据只允许经过身份验证的用户读/写数据库,那么我不需要在数据库端做任何事情,但我我想确保我正确地考虑这个问题.
那是泥浆吗?
我有一个数组,我正在尝试加载到SQL语句中.当我编译SQL语句并包含数组时,它还将[]括号放入字符串中,我需要删除它们才能将其插入到我的数据库中.
这是我的代码:
i = 0
while i < rows.length
sql = "INSERT INTO my_table VALUES(#{rows[i]})"
puts sql
end
Run Code Online (Sandbox Code Playgroud)
当前输出:
INSERT INTO my_table VALUES(["value 1", "value 2", "value 3"])
Run Code Online (Sandbox Code Playgroud)
期望的输出:
INSERT INTO my_table VALUES("value 1", "value 2", "value 3")
Run Code Online (Sandbox Code Playgroud) 我是新手,我在这里看了很多不同的帖子,以及谷歌上发现的很多其他资源,但我仍在努力使用数组.
在我的HTML中,我基本上试图在我的数据库中显示一列美元金额的总和.
这是我的HTML/PHP:
<div class="col-sm-2">
<h1><?php get_sum_income(); ?></h1>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的外部PHP文件,它调用的函数:
function get_sum_income() {
require(ROOT_PATH . "inc/database.php");
try {
$results = $db->prepare("SELECT SUM(cat_amount) FROM categories WHERE is_income = '1';");
$results->execute();
} catch (Exception $e) {
echo ("ERROR: Data could not be retrieved from the database." . $e);
exit;
}
$sum_income = $results->fetch(PDO::FETCH_ASSOC);
print $sum_income;
Run Code Online (Sandbox Code Playgroud)
};
我不断收到"数组到字符串转换"错误,我知道它与我对数组的理解(或缺少数组)有关.我环顾四周,我只是需要帮助解决我的具体情况.
另外,我是如何以最佳方式访问该功能的?