我的代码中的函数 set_title() 有啥问题[重复]
Posted
技术标签:
【中文标题】我的代码中的函数 set_title() 有啥问题[重复]【英文标题】:whats wrong with the function set_title() in my code [duplicate]我的代码中的函数 set_title() 有什么问题[重复] 【发布时间】:2019-05-21 08:34:35 【问题描述】:我创建了一个名为set_title()的函数,用于在数据库中设置标题和描述我不知道我哪里错了
function set_title($file,$title = "",$description = "")
$pathinfo = pathinfo($file);
$file = $pathinfo['basename'];
if ($title == "")
$title = ucfirst($pathinfo['filename']);
if ($description !== "")
$description = mb_substr($description, 0, 150);
$sql = "SELECT file, title ,description FROM title WHERE file = '$file'";
$con = new mysqli('localhost','root','','jbstore');
$result = $con->query($sql);
if($result->num_rows > 0)
$data = $result->fetch_assoc();
if($data['description'] == "")
$sql = "INSERT INTO title (description) VALUES('$description')";
$con->query($sql);
elseif ($result->num_rows == 0)
$sql = "INSERT INTO title (file,title,description) VALUES ('$file','$title',$description)";
$result = $con->query($sql);
我希望它将数据插入数据库,但没有任何反应
【问题讨论】:
你测试过那些IFs
是否被执行了吗?
将elseif
更改为else
,也许$result->num_rows
返回一个NULL
值,这意味着您的代码有可能无法执行
有错误吗? (如果不是,have you enabled error reporting?)您是否检查过代码中运行了哪些路径(例如通过记录特定文本?)如果是,您期望的路径是什么?如果没有,您是否检查过您在 if 语句中使用的值?
你也应该真正使用准备好的语句。您很可能容易受到SQL-Injection 的攻击。请参阅How can I prevent SQL injection in php?
IFs 没有执行
【参考方案1】:
代码中的一些问题。
$sql = "INSERT INTO title (file,title,description) VALUES ('$file','$title',$description)";
这里的 $description 将用作 INT val。
用quote('')添加$description
$sql = "INSERT INTO title (file,title,description) VALUES ('$file','$title','$description')";
【讨论】:
以上是关于我的代码中的函数 set_title() 有啥问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章
seaborn使用displot函数实现多面板直方图(Multi-panel)可视化:使用set_title函数自定义设置多面板直方图标题(Multi-panel histograms’ title)