0

我想知道是否有人输入了为什么这个语句没有插入到我的 MySQL 数据库中。它没有显示任何错误,当我手动输入 SQL 语句时,它会插入信息。

<?php

$host="mysql16.000webhost.com";
$user_name="a1611480_akaash";
$pwd="*****";
$database_name="a1611480_akaash";
$db=mysql_connect($host, $user_name, $pwd);

$sql = "INSERT INTO mydata VALUES ('dude1', 'dude2', 'dude3', 'dude4', 'dude5')";

mysql_query($sql);

?>
4

4 回答 4

4

这是因为 mysql 不知道该 SQL 语句使用哪个数据库。包括mysql_select_db.

mysql_select_db($database_name);

要在 php 中获取任何类型的错误(致命错误除外),请将您的代码用 try 块括起来

try{
    // db code
}catch(Exception $e){
    // something is wrong
    echo "Oh God! I got this ". $e->getMessage();
}
于 2012-11-11T19:55:14.337 回答
2

要查看错误,请执行以下操作:

mysql_query($sql) or die("Error:".mysql_error());

从您的查询中,我假设您有一列并且您想添加多个值所以这可能是格式:

$sql = "INSERT INTO mydata VALUES 
        ('dude1'), ('dude2'), ('dude3'), ('dude4'), ('dude5);";
于 2012-11-11T19:53:10.657 回答
0

那是因为你没有提到列名 - 见http://www.w3schools.com/php/php_mysql_insert.asp 你也忘了选择数据库 - mysql_select_db("my_db");

因此,您的查询必须类似于“INSERT INTO mydata (column1, column2, column3, column4, column5) VALUES ('dude1', 'dude2', 'dude3', 'dude4', 'dude5')";

编辑:当然科里是对的。我认为这只是一种更好的做法-我总是这样做:)

于 2012-11-11T19:54:50.110 回答
0

您正在连接到远程主机,您确定您有权这样做吗?这段代码在哪里执行?

输出结果mysql_error()会很有用!

于 2012-11-11T19:55:11.440 回答