无法更新MySQL数据库

时间:2010-08-18 00:38:27

标签: php mysql database mysql-error-1064

我正在尝试学习mysql,并且在向表中更新/添加数据时遇到一些问题

这是我的代码,在运行此页面后,当我转到phpmyadmin查看新数据是否显示时,我看不到它。

<?php

$conn = mysql_connect($dbhost, $dbuser, $dbpass); 

if(!$conn) {  die("Could not connect");   }
$dbname = "test";
mysql_select_db($dbname, $conn);

mysql_query("INSERT INTO 'test'.'table1' 
               ('A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8') 
             VALUES  
               ('test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7', 'test8')"); 

mysql_close($conn);

?>

有谁能告诉我这有什么不对吗?

4 个答案:

答案 0 :(得分:2)

请务必进行错误检查以查看mysql连接是否也遇到问题:

if(!mysql_select_db($dbname, $conn)) {
   echo  mysql_error($conn);
}else {

    if(!mysql_query("INSERT INTO  'test'.'table1' ('A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8') VALUES ('test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7', 'test8')")) {
      echo  mysql_error($conn);
   } 
}

答案 1 :(得分:2)

问题是字段名称周围的引号。 MySQL不允许使用单引号字段名称。它们必须是裸(A1)或反引号('A1`),因此您的查询应该重写为:

INSERT INTO table1 (A1, A2, A3, A4, A5, A6, A7, A8)
VALUES ('test1', 'test2', 'test3', 'test4', etc.....);

答案 2 :(得分:0)

首先,确保数据库被选中:

mysql_select_db($dbname, $conn) or die('Could not select the database');

您的查询可能存在一些错误,这是未添加数据的原因,请尝试在此or die(mysql_error())函数后添加mysql_query以查看可能的错误:

mysql_query("your query....") or die(mysql_error()); 

也无需指定数据库名称:

'test'.'table1'

在查询中使用table1

启用错误报告也非常有用:

ini_set('display_errors', true);
error_reporting(E_ALL);

答案 3 :(得分:0)

以下是使用MYSQL(或任何SQL DB)时的一般提示。如果你不知道该怎么做,或者你弄错了。使用为您提供的GUI工具来完成工作,然后检查生成的代码。

输入PHPMyAdmin,执行插入操作,然后复制并粘贴代码以查看您的错误。

相关问题