代码不会插入到数据库
我有以下代码应该从前一页收集填充值并将它们插入到MySQLi数据库中。这不起作用,我只收到一个空白页面,没有任何消息。我无法弄清楚我做错了什么。代码不会插入到数据库
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
if(mysqli_connect_errno())
{
echo mysqli_connect_error();
}
$company_name = $_POST['company_name'];
$description = $_POST['description'];
$welcome_text = $_POST['welcome_text'];
$thanks_message = $_POST['thanks_message'];
$image = addslashes (file_get_contents($_FILES['image']['tmp_name']));
$logo = getimagesize($_FILES['image']['tmp_name']);
$image_type = $logo['mime'];
$q = "INSERT INTO project VALUES('','$company_name','$description','$image','$image_type','$welcome_text','$thanks_message')";
$r = mysqli_query($mysqli,$q);
if($r)
{
echo "<h1>Projektet är skapat!</h1><br>
Tryck på knappen nedan för att ta dig till Dashboard.<br><br>
<a href='dashboardadmin.php'><button id='projectbutton'>Dashboard</button></a>";
}
else
{
echo mysqli_errno($mysqli) . ": " . mysqli_error($mysqli) . "\n";
}
?>
INSERT的正确的语法是:
INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
请先尝试你的价值才进入列名。还请检查您的$_POST
值,是否有$_FILES['image']
可用并确认您的mysqli连接。
编辑:
是第一值(空单),你的主键?如果是这样,你可以在代码中省略那一点,然后再试一次吗? (假设PID为整数,自动递增值。)
INSERT INTO project (project_name, description, image, image_type, welcome_text, thanks_message) VALUES('$company_name','$description','$image','$image_type','$welcome_text','$thanks_message')
不知怎的,我不认为这将是Azure的具体问题,根据您的评论。
你能看到日志等任何错误吗?也可以在运行之前尝试回显查询,并检查是否直接在您的phpmyadmin等上运行它,以查看它是否可行。
也请尝试使用echo mysqli_errno($mysqli) . ": " . mysqli_error($mysqli) . "\n";
在if($r){..} else { //here }
以查看是否出现错误。
最新:
$q = "INSERT INTO project (project_name, description, image, image_type, welcome_text, thanks_message) VALUES('".$company_name."','".$description."','".$image."','".$image_type."','".$welcome_text."','".$thanks_message."')";
字段列表是可选的(至少在MySQL中);但我也是他们的强力支持者。 – Uueerdo
@Ekin我现在把列名称,但它不起作用。我有一个很好的连接,我已经测试没有图像代码,但它仍然没有工作。我正在使用Microsoft Azure服务器,但它不起作用,但相同的代码在本地工作,这很奇怪。 – Max
@Max是第一个值(空一)你的主键?如果是这样,你可以在代码中省略那一点,然后再试一次吗?不知何故,我不认为这将是Azure的具体问题。你能看到日志等任何错误吗?在你运行它之前,也请尝试回显查询,并检查你是否直接在你的phpmyadmin等上运行它,看看它是否可以工作。 – Ekin
试试这个,因为你的主键值是自动递增。
$q = "INSERT INTO project VALUES('$company_name','$description','$image','$image_type','$welcome_text','$thanks_message')";
错误????????? PLZ? – devpro
你至少需要“清理”你的输入;参数化查询会更好。 – Uueerdo
[您的脚本存在SQL注入攻击的风险。](http://*.com/questions/60174/how-can-i-prevent-sql-injection-in-php)了解[prepared](http: //en.wikipedia.org/wiki/Prepared_statement)[MySQLi]的声明(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)。 –