Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t将数据插入服务器MySql,数据在本地成功插入_Php_Mysql - Fatal编程技术网

Php Can';t将数据插入服务器MySql,数据在本地成功插入

Php Can';t将数据插入服务器MySql,数据在本地成功插入,php,mysql,Php,Mysql,当我在本地插入时,数据已成功插入到表中,但当我在服务器上插入时,数据未插入 我已经在本地尝试过了,但当尝试在服务器上添加时,它既没有插入也没有给出任何错误 if(isset($_REQUEST["submit_newlaw"])) { $file=$_FILES["file"]["name"]; $court = $_POST['court']; $citation = $_POST['citation']; $appelant = $_POST['appelant']; $opponen

当我在本地插入时,数据已成功插入到表中,但当我在服务器上插入时,数据未插入

我已经在本地尝试过了,但当尝试在服务器上添加时,它既没有插入也没有给出任何错误

if(isset($_REQUEST["submit_newlaw"]))
{
  $file=$_FILES["file"]["name"];

$court = $_POST['court'];
$citation = $_POST['citation'];
$appelant = $_POST['appelant'];
$opponent = $_POST['opponent'];
$judge = $_POST['judge'];
$judgement = $_POST['judgement'];
$reference = $_POST['reference'];
$year = $_POST['year'];
$detail = $_POST['detail'];

$tmp_name=$_FILES["file"]["tmp_name"];
$path="../case_laws/new/".$file;
$file1=explode(".",$file);
$ext=$file1[1];
$allowed=array("jpg","png","pdf","pdf","docx","doc");
if(in_array($ext,$allowed))
{
move_uploaded_file($tmp_name,$path);
$sql = "insert into new_caselaws(id, court, citation, appelant, opponent, 
judge, judgement, reference, year, detail,file)values('', '$court', 
'$citation', '$appelant', '$opponent', '$judge', '$judgement', 
'$reference', '$year', '$detail','$file')"; 
 mysqli_query($db, $sql);
 echo "Successfull";
 }

预期结果是成功插入数据。

看起来您提供了一个由mysqli_connect()或mysqli_init()返回的链接标识符,作为mysqli_查询的第一个参数$db($db,$sql)。但是,不清楚您是否在任何地方定义了$db变量。如果已定义,请确保已更新mysqli_connect()

以下代码可能在本地开发机器上工作,但连接到mysql服务器的设置可能不同。因此,请确保更新参数中的值

mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
另外,向我们提供错误日志也很有帮助

如果找不到错误日志,则可以在该PHP代码所在的目录中找到它

例如,“public\u html/error\u log”

如果$db实际上是在某个地方定义的,并且mysqli_connect()是正确的,那么应该确保围绕mysqli_query()函数编写类似的内容

最后,确保您的文件已上载到服务器中。如果没有上传,那么它会抛出一个异常,PHP永远无法运行您的查询,因为

move_uploaded_file($tmp_name,$path);
失败,并在结束PHP脚本时引发异常

如果没有看到php错误,请转到php.ini文件并键入该文件,或者确保已对其进行编辑(如果已列出)

display_errors = On
在php.ini文件中编辑或创建此值后(该文件应位于public_html或www目录中),请确保重置web服务器以应用设置


我在这个问题被否决后回答这个问题,因为这不一定是mysql错误,因为它正确地插入了他的本地机器。另外,由于某些php.ini文件可能关闭了错误报告功能,在这种情况下,需要打开它来显示错误。

您不进行任何错误处理,因此难怪没有错误消息。dupkicate主题将向您展示如何使用mysqli处理mysql错误。我猜您的服务器不允许空字符串初始化自动递增字段。你应该使用null,或者从插入中完全忽略该字段。这对我很有效,非常感谢兄弟。您的猜测是100%正确-->“我的猜测是您的服务器不允许空字符串初始化自动递增字段。”这是因为我没有为字段“id”分配任何值,它在本地运行正常,但在服务器端出现错误。所以,我从insert查询中删除了“id”,因为我已经选择它从MySQL自动递增。删除id$sql=“插入新的判例法(法庭、传唤、上诉等)后,我的查询如下所示然后添加一个链接,指向关于处理php错误的几十个问题之一,而不是再次提供相同的答案。虽然我必须指出,如果存在php错误,那么代码也不会在本地运行。插入和更新代码的其余部分做得很好,我不知道实际发生了什么问题!顺便说一句,非常感谢您h先生。这是因为我没有给字段“id”赋值,它在本地运行正常,但在服务器端出现错误。因此,我从insert查询中删除了“id”,因为我已经从MySQL中选择了自动递增。在删除id$sql=“insert into new_判例法(法庭、引证、上诉等)后,我的查询如下所示
display_errors = On