Table des matières
回复内容:
Maison développement back-end tutoriel php 新手问题 - php中,$_GET中的数值能被mySQL读到么?

新手问题 - php中,$_GET中的数值能被mySQL读到么?

Jun 06, 2016 pm 08:52 PM
php Questions des débutants

<?php include("../conn.php");
	if ($_GET[post])
	{
		$sql = "SELECT * FROM message  WHERE id = $_GET[post]";
		$query = mysql_query($sql);
		$row = mysql_fetch_array($query);
	}
	if($_POST['submit'])
		{
			$sql = "insert into reply (id,id_p,time,content) values('','$_GET[post]',now(),'$_POST[content]')";
				mysql_query($sql);
				echo "<meta http-equiv=refresh content=0";
			}

?>
Copier après la connexion


$sql = "insert into reply (id,id_p,time,content) values('','$_GET[post]',now(),'$_POST[content]')";
Copier après la connexion
Copier après la connexion

中,id_p的值一直是0,其余的取值都正常,不知道为什么
.$_GET[post]是有值的,在这段代码上方和下方都能用,但是就在这个SQL语句当中不能用...

想了很多办法,比如在代码前面加上$a = $_GET[post],用$row[id](message表中的id其实就是$_GET[post]的值),都不读不到取值;

难道是

echo "

的问题?
新手问题 - php中,$_GET中的数值能被mySQL读到么?

回复内容:

<?php include("../conn.php");
	if ($_GET[post])
	{
		$sql = "SELECT * FROM message  WHERE id = $_GET[post]";
		$query = mysql_query($sql);
		$row = mysql_fetch_array($query);
	}
	if($_POST['submit'])
		{
			$sql = "insert into reply (id,id_p,time,content) values('','$_GET[post]',now(),'$_POST[content]')";
				mysql_query($sql);
				echo "<meta http-equiv=refresh content=0";
			}

?>
Copier après la connexion


$sql = "insert into reply (id,id_p,time,content) values('','$_GET[post]',now(),'$_POST[content]')";
Copier après la connexion
Copier après la connexion

中,id_p的值一直是0,其余的取值都正常,不知道为什么
.$_GET[post]是有值的,在这段代码上方和下方都能用,但是就在这个SQL语句当中不能用...

想了很多办法,比如在代码前面加上$a = $_GET[post],用$row[id](message表中的id其实就是$_GET[post]的值),都不读不到取值;

难道是

echo "<meta http-equiv="refresh" content='0";</pre'>
<br>
的问题?<br><img  src="/static/imghw/default1.png" data-src="http://segmentfault.com/img/bEGSH7" class="lazy" data- alt="新手问题 - php中,$_GET中的数值能被mySQL读到么?" >

                            
                        
            <p class="answer fmt" data-id="1020000000097100">
                                    </p><p>我觉得你最好定义一个变量给GET过来的值,因为我以前有试过,貌似在SQL语句里头赤果果的写$_GET这样的是行不通的,个人愚见。<br>
PS:里头代码低级错误貌似好多额...建议改改在测试...</p>
                            
            <p class="answer fmt" data-id="1020000000097097">
                                    </p><p>把sql中的<code>$_GET[post]</code>改成<code>{$_GET['post']}</code></p><p>另外,你得加强下编码习惯的培养,这段代码的缩进让人看着抓狂,还有这句<code>echo "<meta http-equiv="refresh" content='0";</code'>输出的html居然没有用<code>></code>闭合,属性也没有用双引号。。。需要修炼下程序员的气质</code></p>
                            
            <p class="answer fmt" data-id="1020000000097099">
                                    </p><p>首先,你要搞清楚,mysql不会执行任何页面提交过来的任何值;<br>
其次,按你贴的代码的意思,php会解析你页提交过来的值,生成sql 语句;<br>
再次,你的代码书写的令人相当难受,乱缩进,毫无层次感;<br>
再次,请确定你的页面的提交方式,到底是 GET,还是 POST,如果不确定,请直接用 REQUEST,一会 GET,一会 POST ,真是别扭啊;<br>
最后,请你在<code>""</code>里面写复杂变量时,记得加上{},如<code>{$POST['post']}</code></p><p>补充:<br>
确认一下你页面提交过来的参数是否是<code>post</code><br>
你可以在贴出的这个代码的页面打印出页面提交过来的所有值,在开头部份添加以下代码:<br><code>echo <xmp>;</xmp></code><br><code>var_dump($_REQUEST);</code><br><code>echo ;</code></p>
                            
            <p class="answer fmt" data-id="1020000000097105">
                                    </p><p>你的字段用了tinyint,tinyint是从-128~127的,会不会溢出了?<br>
还有,其实本质上int(10)和int(1)没区别,所以一般不是那种true or false或者是status类型的字段,都不用int(1),你给一个int(10)就好了。</p><p>执行这个把表结构改一下</p><pre class="brush:php;toolbar:false">$sql = "alter table reply change id id int(10) NOT NULL AUTO_INCREMENT";
mysql_query($sql) or die(mysql_error());
$sql = "alter table reply change id_p id_p int(10) NOT NULL";
mysql_query($sql) or die(mysql_error());
Copier après la connexion

然后把代码改成这样,把所有信息都打出来看看。

if($_POST['submit'])
{
  $sql = "insert into reply (id_p,time,content) values('{$_GET['post']}',now(),'{$_POST['content']}')";
  echo $sql;
  mysql_query($sql) or die(mysql_error());
  $sql = "select * from reply order by id DESC limit 1";
  $query = mysql_query($sql);
  $result = mysql_fetch_array($query);
  var_dump($result);
//  echo "<meta http-equiv="refresh" content="0">";
}
Copier après la connexion

sql的问题有这么几个:

  • 既然id已经是自增主键了,那么就不用在sql里显式插入了
  • 双引号里的变量最好用{}括起来
  • mysql_query要做错误处理,比如 or die(mysql_error()) 这种用法
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles