首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入mysql不起作用

插入mysql不起作用
EN

Stack Overflow用户
提问于 2016-03-27 22:04:17
回答 4查看 3.7K关注 0票数 2

在这里第一篇文章和一个在php编程的新手。

我正在尝试将$val(2)插入mysql数据库。我的代码如下:

代码语言:javascript
复制
$username = "xxx";
$password = "xxx";
$hostname = "xxx";
$val= "2";

$connection=mysql_connect ($hostname, $username, $password)
or die("Unable to connect to MySQL");

$selected = mysql_select_db("database",$connection)
or die("Could not select examples");

$url = "http:xxxxxxxxxxxxx.com";	//url here
$str = file_get_contents($url);

$sql = "INSERT INTO testtable (data)
VALUE ('".$val."')";
   
$ins= mysql_query($test);
if(! $ins )
{
	die('Could not insert: ' . mysql_error());
}

当我运行代码时,没有打印错误,但是没有数据插入到表中。有人能指出这个问题吗。我很感谢你的帮助。

增编:

我没有包括台词:

代码语言:javascript
复制
$url = "http:xxxxxxxxxxxxx.com";    //url here
$str = file_get_contents($url);

在我的第一篇文章里。

真正的解决办法是改变:

代码语言:javascript
复制
$test to $sql

并注释掉下面的两行

代码语言:javascript
复制
file_get_content($url) 
$str = file_get_contents($url);

这2行必须放在顶部(在$username= "xxx“行之前)才能工作。为这个误导的问题道歉。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-27 22:10:55

尝试更新插入方法,如下所示(在“VALUE”结尾遗漏了"S“):

代码语言:javascript
复制
$sql = "INSERT INTO testtable(data) VALUES ('".$val."')"; 

另一方面,请注意,下面的行中有不同的变量,您可以使用"slq“而不是"test”,如下所示:

代码语言:javascript
复制
$ins= mysql_query($sql);

要获得更多信息,请查看将数据插入MySQL中

希望这能帮上忙。

票数 0
EN

Stack Overflow用户

发布于 2016-03-27 22:10:40

这里有一个SQL错误:

代码语言:javascript
复制
$sql = "INSERT INTO testtable (data)
 VALUE ('".$val."')";

VALUE应该是VALUES

当某些事情不按预期工作时,您应该始终检查错误(在本例中为错误 )。

另外,您不应该再使用mysql扩展了。它已经被废弃了很久了。查看mysqliPDO以获得更好和更安全的扩展。

票数 2
EN

Stack Overflow用户

发布于 2016-03-27 22:55:06

事件的事实是,您调用了以下变量中的错误变量:

代码语言:javascript
复制
$ins= mysql_query($test);

它应该是$sql而不是$test

代码语言:javascript
复制
$ins= mysql_query($sql);

如查询所示:

代码语言:javascript
复制
$sql = "INSERT INTO testtable (data)
 VALUE ('".$val."')";

其中VALUESVALUE在MySQL中都有效。有些人错误地认为这一定是VALUES都是有效的.

参考资料:

从手册中:

代码语言:javascript
复制
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name,...)] 
    [(col_name,...)]
    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]

错误报告会告诉您未定义的变量$test

错误报告添加到文件的顶部,这将有助于查找错误。

代码语言:javascript
复制
<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Then the rest of your code

Sidenote:显示错误只应在暂存过程中进行,而不应在生产中执行。

您现在的代码对SQL注入开放。将有准备好的陈述PDO准备语句结合使用。

脚注:

mysql_*函数弃用通知:

http://www.php.net/manual/en/intro.mysql.php

此扩展在PHP5.5.0中不再受欢迎,不建议用于编写新代码,因为它将在PHP7.0中删除。相反,应该使用米斯里PDO扩展。在选择MySQL API概述 API时,还请参阅MySQL获得进一步帮助。

这些函数允许您访问MySQL数据库服务器。有关MySQL的更多信息可以在http://www.mysql.com/上找到。

MySQL的文档可以在http://dev.mysql.com/doc/上找到。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36253221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档