gpt4 book ai didi

php - 使用 mysql 从 php 插入时出现问题

转载 作者:行者123 更新时间:2023-11-29 20:57:07 25 4
gpt4 key购买 nike

所以我在 php 上使用一个小脚本进行网页管理,并且我要做一个项目注册,所以我获取所有参数并将它们发送到脚本以构建数据库(mysql)的插入。这是我的代码:

//Getting the params
$title = $_POST["title"];
$date = $_POST["date"];
$hour = $_POST["hour"];
$description = $_POST["description"];
$link = $_POST["link"];
$speaker = $_POST["speaker"];
$site = $_POST["site"];
$file = $_POST["file"];
//Link and File are optional, so I'll be using NULL instead if they're empty
$link = !empty($link) ? ("'".$link."'") : ("'". NULL ."'");
$file = !empty($file) ? ("'".$file."'") : ("'". NULL ."'");
//Now I'm ready to build the query
$query = "INSERT INTO ".$type;
$query = $query . "(title,data,hour,description,link,speaker,site,file)";
$query = $query . "VALUES (";
$query = $query . "'" .$title."'";
$query = $query . ",'".$date."'";
$query = $query . ",'".$hour."'";
$query = $query . ",'".$description."'";
$query = $query . ",".$link;
$query = $query . ",'".$speaker."'";
$query = $query . ",'".$site."'";
$query = $query . ",".$file.")";
//Finally, I'll be sending the INSERT as a query using:
$result = mysql_query($query);
if(!$result)
echo "SQL Error"

所以,我总是进入错误语句。我让其他人在同一网页上的其他脚本中插入,并且它们工作得很好,这个模仿了它们。我检查过:

  1. mysql_connect() 和 mysql_select_db() 没问题
  2. 我使用的数据库用户拥有执行 INSERT 的权限
  3. 数据库连接(使用 SELECT 查询检查)

任何提示将不胜感激。

[已解决] 字符串未转义,因此引号破坏了查询。因此,如果您仍然遇到此类问题并使用已弃用的 mysql _ API,您可能还需要 mysql_escape_string 方法(检查 Escaping single quote in PHP when inserting into MySQL )。

最佳答案

使用这些行。

$link = !empty($link) ? $link : NULL;
$file = !empty($file) ? $file :NULL ;

PHP中,null是不带引号的NULL,也不要在$link和$file中使用额外的“”。

在运行查询之前尝试打印它并在PhpMyadmin中运行

关于php - 使用 mysql 从 php 插入时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37539429/

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