【发布时间】: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 没有执行