将php表单链接到数据库

将php表单链接到数据库,php,mysql,sql,forms,hyperlink,Php,Mysql,Sql,Forms,Hyperlink,试图将我的php表单链接到我的数据库,但它不起作用。有人能找出毛病吗?它一直在代码的“插入”部分给我一个解析错误 <?php $link = mysql_connect($localhost,$root,$xxxxxxx); if (!$link) { die("Could not connect"); }; print "Connected to the database server"; $db_selected = mysql_select_db($module_evaluat

试图将我的php表单链接到我的数据库,但它不起作用。有人能找出毛病吗?它一直在代码的“插入”部分给我一个解析错误

<?php
$link = mysql_connect($localhost,$root,$xxxxxxx);

if (!$link) {
die("Could not connect");
};

print "Connected to the database server";

$db_selected = mysql_select_db($module_evaluation_results, $link);
if (!$db_selected) {
die("Could not use the database");
};

print "selected a DB";

$result = mysql_query (INSERT INTO module_evaluation_results 
(faculty, date, modulecode, moduletitle, school, modulebookcontent, moduleorganisation, lrcmaterials, moduledifficulty. modulesimilarity, 
contentinteresting, previousknowledge, understoodassessmentrequirements, assessmentmethod, moduleleader, ML_interestforsubject, ML_contentclear, 
ML_appropriateteachingpace,ML_reachableforadvice, ML_helpfulfeedback, lecturer1, L1_interestforsubject, L1_contentclear, 
L1_appropriateteachingpace, L1_reachableforadvice, L1_helpfulfeedback, lecturer2, L2_interestforsubject, L2_contentclear, L2_appropriateteachingpace, 
L2_reachableforadvice, L2_helpfulfeedback, hoursofindependentstudy, overallattendance, bestfeaturesofmodule, improvemodule)

VALUES ($faculty, $date, $modulecode, $moduletitle, $school, $modulebookcontent, $moduleorganisation, $lrcmaterials, $moduledifficulty, 
$modulesimilarity, $contentinteresting, $previousknowledge, $understoodassessmentrequirements, $assessmentmethod, $moduleleader, 
$ML_interestforsubject, $ML_contentclear, $ML_appropriateteachingpace, $ML_reachableforadvice, $ML_helpfulfeedback, $lecturer1, $L1_interestforsubject, 
$L1_contentclear, $L1_appropriateteachingpace, $L1_reachableforadvice, 
$L1_helpfulfeedback, $lecturer2, $L2_interestforsubject, 
$L2_contentclear, $L2_appropriateteachingpace, $L2_reachableforadvice, 
$L2_helpfulfeedback, $hoursofindependentstudy, 
$overallattendance, $bestfeaturesofmodule, $improvemodule));

if (!$result) {
   die('Invalid query: ' . mysql_error());
}

print "run a query against the DB";

mysql_close($link);
?>

而不是

moduledifficulty. modulesimilarity
使用


为什么您的查询中没有报价?复制粘贴问题?还是这就是错误

i、 e

订正答复:) 这个函数是由ddlshack在php.net上开发的,我已经在本地对它进行了测试,做了一些修改,以反映您的用例和它的工作状态,也许它也会帮助简化您的插入调用

function mysql_insert($table, $inserts) 
{
    $values = array_map('mysql_real_escape_string', array_values($inserts));
    $keys = array_keys($inserts);

    return mysql_query('INSERT INTO `'.$table.'` (`'.implode('`,`', $keys).'`) VALUES (\''.implode('\',\'', $values).'\')');
}
像这样使用

 mysql_insert(
        'module_evaluation_results', array(
        'col1' => rand(10,100),
        'col2' => 'string1',
        'col3' => 'string2',
        'col4' => rand(10,100),
        'col5' => 'string3',
    )); 
所以mysql_insert(表名、数组(列名、值))

我的完整php测试文件如下

$link = mysql_connect('127.0.0.1:3306', 'test-user', 'test-pass');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';

$db_selected = mysql_select_db("test", $link);
if (!$db_selected) 
{
    die("Could not use the database");
};

mysql_insert(
    'module_evaluation_results', array(
    'col1' => rand(10,100),
    'col2' => 'string1',
    'col3' => 'string2',
    'col4' => rand(10,100),
    'col5' => 'string3',
)); 

mysql_close($link);

function mysql_insert($table, $inserts) 
{
    $values = array_map('mysql_real_escape_string', array_values($inserts));
    $keys = array_keys($inserts);

    return mysql_query('INSERT INTO `'.$table.'` (`'.implode('`,`', $keys).'`) VALUES (\''.implode('\',\'', $values).'\')');
}
我想问题可能是你的桌子名?加上所写查询的复杂性,可能会有一些打字错误
但是这段代码确实有效,插入可以多次运行,如果这有助于在插入查询周围加上引号,那么它更易于阅读和编码。另外,不要使用mysql\u查询。它已被弃用。使用mysqli或PDO。仍然需要更改模块难度。模块相似性模块相似性困难,模块相似性这很有帮助,谢谢,但它仍然不起作用。它说-使用未定义的常量localhost-假定“localhost”“root”和“password”@duindain最可能的原因可能是
值周围没有引号,即:
值($faculty,$date,$modulecode
,应读作
值(“$faculty”、“$date”、“$modulecode”等@taniakeira@Fred-ii-我刚刚试过,但它仍然无法识别值。您如何将
$module\u evaluation\u results
定义为您的表?没有其他提及。除非您指的是
module\u evaluation\u results
没有
$
符号,但我认为这很好太不可能了。@taniakeira
 mysql_insert(
        'module_evaluation_results', array(
        'col1' => rand(10,100),
        'col2' => 'string1',
        'col3' => 'string2',
        'col4' => rand(10,100),
        'col5' => 'string3',
    )); 
$link = mysql_connect('127.0.0.1:3306', 'test-user', 'test-pass');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';

$db_selected = mysql_select_db("test", $link);
if (!$db_selected) 
{
    die("Could not use the database");
};

mysql_insert(
    'module_evaluation_results', array(
    'col1' => rand(10,100),
    'col2' => 'string1',
    'col3' => 'string2',
    'col4' => rand(10,100),
    'col5' => 'string3',
)); 

mysql_close($link);

function mysql_insert($table, $inserts) 
{
    $values = array_map('mysql_real_escape_string', array_values($inserts));
    $keys = array_keys($inserts);

    return mysql_query('INSERT INTO `'.$table.'` (`'.implode('`,`', $keys).'`) VALUES (\''.implode('\',\'', $values).'\')');
}